我有一个使用 Facebook JS SDK 的网站,并且自 2 年多以来一直运行良好
今天 Facebook 部分(我使用 SDK 在主页的选项卡中显示用户时间线)停止工作,当页面加载时它给了我这个 JavaScript 错误
任何帮助将不胜感激
错误:错误:表达式是字符串类型,而不是对象源文件:http ://connect.facebook.net/en_US/all.js 行:37
我有一个使用 Facebook JS SDK 的网站,并且自 2 年多以来一直运行良好
今天 Facebook 部分(我使用 SDK 在主页的选项卡中显示用户时间线)停止工作,当页面加载时它给了我这个 JavaScript 错误
任何帮助将不胜感激
错误:错误:表达式是字符串类型,而不是对象源文件:http ://connect.facebook.net/en_US/all.js 行:37
它并不像替换FB.Data.waitOn
and那样简单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 开发者论坛之后;直到我在这里遇到另一篇帖子检查新的 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
}
}
});