我有一个使用Facebook JS SDK的网站,它在2年多以来一直运作良好
今天Facebook部分(我使用SDK在主页面的选项卡中显示用户时间线)停止工作,当页面加载时它给了我这个JavaScript错误
任何帮助将不胜感激
错误:错误:表达式是字符串类型,而不是对象 源文件:http://connect.facebook.net/en_US/all.js 行:37
答案 0 :(得分:5)
这不仅仅是替换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
}
});
});
谷歌上搜索可疑的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
}
}
});