每次调用getUser()
方法时,PHP Facebook-SDK都会为我返回0。我正在寻找一个不使用JS的解决方案。那就是我到目前为止。
$user = null;
$facebook = new Facebook(array(
'appId' => '140739xxxx46068',
'secret' => '46dff7362e86xxxxx06fe9050a86a22',
'cookie' => true,
));
// Get User ID
$login = $facebook->getLoginUrl(array("scope" => "publish_stream,manage_pages"));
$user = $facebook->getUser();
echo $facebook->getUser()."//".$facebook->getAccessToken();
if ($user <> '0' && $user <> '')
{
try {
//header("location:".$login);
}
catch (FacebookApiException $e)
{
echo $e->getType();
echo $e->getMessage();
}
答案 0 :(得分:0)
想一想。您将loginURL
保存到$login
var中,然后尝试检索用户数据。
那永远不会奏效。您没有提示用户使用登录URL,因此他没有授予访问权限。用户需要手动访问URL并确认权限。之后,您可以检索用户数据。
让我们总结一下:
getUser()
对此有用)getUser()
为0),请告知用户访问您通过getLoginUrl()
获得的网址redirect_uri
传递的数组中加入4.
键
你可以重定向到同一个uri,因为我们正在检查我们是否检索用户
数据或提示用户登录redirect_uri
您遇到的逻辑缺陷是,您认为getLoginURL()
会自动授予您访问用户数据的权限。但事实并非如此,您需要用户访问该URL,以便他们可以自行授予访问权限。