Facebook 应用程序自动刷新

发布于 2024-10-19 05:48:39 字数 1289 浏览 0 评论 0原文

我的应用程序自动刷新到 Facebook 登录网址,但我的用户已经登录,因此不断重复刷新。

这是我的代码

$facebook = new Facebook(array(
    'appId'  => 'my app id',
    'secret' => 'my secret key',
    'cookie' => true,
));
$session = $facebook->getSession();
$fbme = null;
$loginUrl = $facebook->getLoginUrl(
    array(
        'canvas'    => 1,
        'fbconnect' => 0,
        'next' => 'my app uri',
        'cancel_url' => 'my app uri',
        'req_perms' => 'email,publish_stream,status_update,offline_access,user_birthday'
    )
);
if (!$session) {
   echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
   exit;
}
else {
  try {
      $uid      =   $facebook->getUser();
      $fbme     =   $facebook->api('/me');
  } catch (FacebookApiException $e) {
      echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
      exit;
  }
}
function d($d){
return TRUE;
}

,我的页面刷新源是:

"<script type='text/javascript'>top.location.href = 'facebook login url..';</script>

始终刷新,不间断。

我查看了谷歌,发现了 p3p 政策: header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 添加但不起作用:(

抱歉我的英语不好。

My application refreshs automatically to facebook login url but my user already signed in so repeats refresh, nonstop.

Here is my code

$facebook = new Facebook(array(
    'appId'  => 'my app id',
    'secret' => 'my secret key',
    'cookie' => true,
));
$session = $facebook->getSession();
$fbme = null;
$loginUrl = $facebook->getLoginUrl(
    array(
        'canvas'    => 1,
        'fbconnect' => 0,
        'next' => 'my app uri',
        'cancel_url' => 'my app uri',
        'req_perms' => 'email,publish_stream,status_update,offline_access,user_birthday'
    )
);
if (!$session) {
   echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
   exit;
}
else {
  try {
      $uid      =   $facebook->getUser();
      $fbme     =   $facebook->api('/me');
  } catch (FacebookApiException $e) {
      echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
      exit;
  }
}
function d($d){
return TRUE;
}

And my page's source in refresh is:

"<script type='text/javascript'>top.location.href = 'facebook login url..';</script>

Always refreshs, non stop.

I looked google and i found p3p policy: header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
added but not working :(

Sorry for my bad English.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

携君以终年 2024-10-26 05:48:39

我想你需要看看这个文档

iframe/P3P 标头中的 Cookie
有些浏览器会让 iframe 设置 cookie
基于P3P的存在
标头。值得注意的是,IE 尊重这一点
标头。理想情况下你可能想看看
根据上调正确的值
您采用的隐私政策
应用程序,但任何值都会
通常就足够了。样品
例如,应用程序发送此内容:

P3P: CP="HONK"

I guess you need to look at this document:

Cookies in iframes/P3P Header
Some browsers will let iframes set cookies
based on the presence of the P3P
header. Notably, IE respects this
header. Ideally you may want to look
up the right value based on the
privacy policy adopted by your
application, but any value will
usually suffice. The sample
application sends this for instance:

P3P: CP="HONK"
睫毛上残留的泪 2024-10-26 05:48:39
  1. 从我的应用程序 -> 下载最新版本的 PHP-Sdk您的应用程序
  2. 在“我的应用程序”->“您的应用程序”->“编辑设置”中禁用“流发布 URL 安全性”选项。

您可能正在使用旧版本的 PHP Sdk。

  1. Download the latest version of the PHP-Sdk form My Apps -> your application
  2. Disable the option Stream post URL security in My App->your application->Edit Settings.

You might be using the old version of the PHP Sdk.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文