这让我很头疼.我有一个页面选项卡应用程序,其中数据库交互使用facebook-user-id来分配和保存数据,还用于检查用户权限.在弱势之前,一切都运行良好,但现在随着即将到来的12月变化,这个设置不再起作用了:
config.php文件:
$facebook = new Facebook( array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
Run Code Online (Sandbox Code Playgroud)
index.php: 包含config.php并获取签名请求(对问题不重要)
javascript.js: 调用read-user-status.php并处理数据
read-user-status.php: 给json-response,包括config.php并调用$ facebook - > getUser() - 函数来获取uid
即使在页面加载后直接从index.php调用,我有时会得到uid,有时我也不会.勉强足够我通常需要等待一段时间,直到我重新加载页面然后再次工作.但情况并非总是如此.这一切对我来说都很奇怪.
编辑:应该提到这个电话:
$uid = $facebook -> getUser();
if ($uid) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook -> api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$uid = FALSE;
echo "EXCEPTION $e";
}
}
Run Code Online (Sandbox Code Playgroud)
给出"EXCEPTION必须使用活动访问令牌来查询有关当前用户的信息".
我知道那里有很多类似的问题,但是没有一个答案对我的特殊问题(可能是新的破坏性改变)有问题.
EDIT2:我现在认为它是一个sdk-bug(https://developers.facebook.com/bugs/238039849657148,感谢CBroe).对于解决方案的任何建议当然都是非常受欢迎的.
编辑3,临时解决方案 每次发出ajax请求时,都会发布从FB.getLoginStatus或FB.login获取的令牌,并在php文件中读出并通过$ facebook - > setAccessToken进行设置.不适合所有情况(你肯定需要使用post),速度较慢并带来一些安全问题,但仍然有效.
听起来你受到我在11月初报道的bug的影响,https://developers.facebook.com/bugs/238039849657148
他们已经证实了这一点,并表示他们正在努力修复 - 但由于现在只有几天的变化,他们应该快点一点......
| 归档时间: |
|
| 查看次数: |
7110 次 |
| 最近记录: |