所以我有一个FB应用程序,在某些情况下我需要我的Javascript使用与index.php位于同一域的php文件将内容加载到div中。对于其中一些我喜欢确保用户仍然有效和/或需要auth令牌和FB用户ID。我通过在php文件中创建FB PHP SDK的实例来实现这一点,该文件是由javascript注入的ajax并使用getUser()和getAccessToken()。但是,我注意到有时莫名其妙地getAccessToken()调用将失败并报告它需要一个有效的访问令牌来执行操作。
getAccessToken()是一种可靠(甚至理想)的方式来确保用户登录到FB或者我应该做其他事情(例如,存储访问令牌,我从Javscript中的签名请求解析并将其作为变量传递到我注入的php文件)?感谢。
答案 0 :(得分: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;
}