我有一个使用 Facebook JS SDK 的网站,它运行良好超过 2 年
今天 Facebook 部分(我使用 SDK 在主页的选项卡中显示用户时间线)停止工作,当页面加载时它给我这个 JavaScript 错误
任何帮助将不胜感激
错误:错误:表达式是字符串类型,不是对象 源文件:http://connect.facebook.net/en_US/all.js 行:37
最佳答案
它并不像替换 FB.Data.waitOn
和 FB.Data.query
那样简单。
我目前正在使用 FB.Data.query
函数调用来进行 FQL
调用,以优雅地测试用户是否已接受 publish_stream
我的应用程序的许可。
像这样:
FB.api('/me', function(response) {
var user_id = response.id;
var query = FB.Data.query('select publish_stream from permissions where uid={0}', user_id);
query.wait(function(rows) {
if (rows[0].publish_stream == 1) {
//user has accepted our publish_stream permissions
} else {
//user has not accepted our publish_stream permissions
}
});
});
在 google 和搜索那个糟糕的 facebook 开发者论坛之后;直到我在这里看到另一篇文章,我才找到我要找的东西 check for extended permissions with new facebook javascript sdk
然后我想出了我的解决方案:
FB.api('/me/permissions', function(response) {
if (response && response.data) {
var permissions = response.data.shift();
//console.log(permissions);
if (!permissions || (!permissions.publish_stream) || (permissions.publish_stream == 0)) {
//user has not accepted our publish_stream permissions
} else {
//user has accepted our publish_stream permissions
}
}
});
关于facebook-javascript-sdk - Facebook All.Js 新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047743/