0

所以我有一个 FB 应用程序,在某些情况下,我需要我的 Javascript 使用与 index.php 位于同一域中的 php 文件将内容加载到 div 中。对于其中一些,我想确保用户仍然有效和/或需要身份验证令牌和 FB 用户 ID。我通过在 php 文件中创建一个 FB PHP SDK 的实例来实现这一点,该文件由 javascript 注入 ajax 并使用 getUser() 和 getAccessToken()。但是,我注意到,有时 getAccessToken() 调用会莫名其妙地失败并报告它需要一个有效的访问令牌才能执行该操作。

getAccessToken() 是确保用户登录到 FB 的可靠(甚至是理想)方式还是我应该做其他事情(例如,将我从签名请求中解析的访问令牌存储在 Javscript 中并将其作为变量传递给 php我正在注入的文件)?谢谢。

4

1 回答 1

0

最可靠的可能是获取他们的详细信息。过去,我有一个“getUser”实例返回 true,但用户实际上并没有登录。所以现在我也得到了他们所有的细节,这更可靠:

$facebook = new Facebook(array(
                            'appId' => FB_APP_ID,
                            'secret' => FB_APP_SECRET,
                            'cookie' => true
                    ));
$FB_UID=false;
try {
    $FB_UID = $facebook->getUser();
    // This verifies the user is actually logged in. teh above can return "true" but the following will crap out and throw exception
    $FB_me = $facebook->api('/me');  // 'birthday'
    // Not needed:
    // $FB_token = $facebook->getAccessToken();

} catch (FacebookApiException $e) {
    $FB_UID = false;
    $FB_me = false;
    // $FB_token = false;
}
于 2012-05-08T22:03:00.720 回答