想象一下:用户几天前登录了我的Facebook应用程序。
当此用户再次访问我的应用时, $ this-> _obj-> facebook-> getUser()会按预期返回用户的UID。要获取此用户的详细信息,请拨打 $ this-> _obj-> facebook-> api('/ me')
这给了我以下错误: OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。
但是,当用户刷新页面时, / me 调用会按预期返回用户的详细信息。
我检查了访问令牌( $ this-> _obj-> facebook-> getAccessToken()):对于第一次调用,PHP SDK使用应用访问令牌(抛出的内容)这个错误如预期的那样)。对于第二个调用,使用用户访问令牌(以便我按预期获得用户的信息)。
所以主要问题是: SDK如何检测到该用户登录到我的Facebook应用程序(getUser()返回UID),但是仍然使用app访问令牌发出/ me请求?这应该是用户访问令牌。当我看到刷新后正在使用正确的用户访问令牌时,我迷路了。
(注意:我使用CodeIgniter框架,PHP SDK可通过$ this-> _obj-> facebook获得)
希望你能帮助我,谢谢!