首先我得到“登录网址”:
if (!$facebook->getUser())
{
$login_url = $facebook->getLoginUrl(array(
'scope' => 'publish_stream'
));
}
并重定向到它,如果用户没有登录它请求他登录, 如果用户需要授权应用程序,它也会请求他也这样做。
问题是用户授权App并重定向到我的redirect_uri后, 我仍然可以获取他的令牌以获取有关他的信息。 这样:
$facebook->getAccessToken()
返回App访问令牌(管道位于中间的那个) 还有这个: $ facebook->的getUser() 返回0。 并且以无限循环结束,请求登录URL(第一次请求授权我的APP)重定向到我的redirect_uri再次请求它 $ facebook->的getUser() 返回0。
有趣的是: 当我在其他服务器(位于世界其他地方)使用此代码时,它可以工作。 当我在其他服务器上(甚至在世界上的其他位置)尝试此操作时,它只有60%的时间可用。
问题出在哪里?在我的代码?在我的服务器?在Facebook?
谢谢!!!
答案 0 :(得分:1)
请尝试使用$facebook->getAccessTokenFromCode($_GET['code'])
。
答案 1 :(得分:0)
我也有时遇到过这个问题。结果发现,在那些时候我使用Facebook作为同一个应用程序的页面,而不是使用我常用的配置文件。因此,无论何时遇到此问题,您都可以检查确保您将Facebook用作用户个人资料而不是任何页面。
我希望这至少可以为将来的某些人带来一些挫败感,所以尽管你的问题已经解决了,但仍然可以解答。