我已经阅读了大量关于此的主题,但要么没有答案,要么给出的答案对我不起作用。
如果他们尚未授权,我有以下代码要求授权我的 Facebook 应用程序。一旦获得授权,它应该重定向到同一页面,但这次它不需要请求授权。
该代码完美地要求用户授权......完全按照我的意愿工作,但是当应用程序重新加载时,$user 总是设置为 0。
这是我的代码:
//Get PHP SDK
require_once 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'cookie' => true
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
echo "logged in and authenticated";
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Ask for authorisation
if(!$user) {
$login_url = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'scope' => 'email,publish_stream',
'redirect_uri' => 'myurl - same as Site URL in app basic settings'
)
);
echo "<script> top.location.href='" . $login_url . "'</script>";
}
}
用户授权应用程序后,它不会再次请求授权,所以我假设授权有效,但为什么$facebook->getUser()
返回 0?
重定向后的 URL 有两个查询字符串参数 - 'state' 和 'code'。它们是否相关?我应该和他们做点什么吗?据我所知,我已经下载了最新的 Facebook SDK,所以我不知道如何让它工作。
注意:我通过 AJAX 调用上面的代码。