我在这里疯了,
我不明白 facebook 如何处理令牌的事情。我使用 php sdk 进行网络登录。这行得通,我可以得到
$facebook->api('/me');
来自用户等的数据
但不久之后,我确实得到了* fb 错误:
OAuthException: An active access token must be used to query information about the current user.
即使用户仍然登录。当我断开连接并再次使用 facebook 登录时,我没有得到新的令牌(我认为是因为 cookie 仍然处于活动状态?)
当我删除所有 cookie 时,它会工作一段时间。
但是当我用 JS SDK 回来查看时
FB.getLoginStatus(function(response){FB.api('/me', function(response) {});});
我总是有一个活动的 access_token 并且在其中我可以调用 api,但只能在...
为什么我不能在 php 和 js 中使用相同的标记,或者为什么它们不同??????
请帮我。
编辑
为了更好地解释它。在 php 中,access_token 从例如“CDAtEg”等更改为“148234”等(不知道为什么)。如果我在 php 中执行 api 请求,我得到了 OAuthException,但在 js SDK 中,旧令牌“CDAtEg”仍然处于活动状态,并且在令牌过期之前我得到了 user_data。
为什么我不能再次在 php 中使用相同的令牌以及为什么它被删除?我找不到原因。
编辑 2
到目前为止,感谢您的想法。我现在发现了两件事。首先,当我保存从 JS SDK 获得的令牌并将其与
$facebook->setAccessToken()
到目前为止它似乎有效。其次,正如 phwd 在我从 php 获得的 user_access 令牌下方发布的那样,在 2.3 分钟后被删除。我怎样才能找到这个问题的根源?