【发布时间】:2010-05-09 04:57:54
【问题描述】:
我正在尝试构建一个基于 PHP 的 Facebook 应用程序。该应用程序在我自己的 Web 主机上的 php 下作为 iFrame 在 Canvas 内运行。
我已包含来自 Facebook 的最新 PHP 客户端库:facebook-php-sdk-94fcb13
要在我的应用程序中授权用户,我正在尝试使用 Facebook Connect,就像客户端附带的示例一样。第一次登录时一切正常,但是当我按 F5 键重新加载页面时,会话丢失,我必须再次登录。当我在 Facebook Canvas 之外调用我的应用程序时,一切都很好。
我不确定,但我认为我的浏览器(Chrome/FireFox - Ubuntu)不允许在 iFrame 中存储 cookie。
有人知道这个问题的解决方案吗?以下是部分源代码:
$facebook = new Facebook(array(
'appId' => 'x',
'secret' => 'x',
'cookie' => 'true',
));
$session = $facebook->getSession();
$facebook->setSession($session);
$me = null;
// Session based API call.
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
// login or logout url will be needed depending on current user state.
if ($me) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
【问题讨论】: