3

我有一个使用 Facebook JS SDK 的网站,并且自 2 年多以来一直运行良好

今天 Facebook 部分(我使用 SDK 在主页的选项卡中显示用户时间线)停止工作,当页面加载时它给了我这个 JavaScript 错误

任何帮助将不胜感激

错误:错误:表达式是字符串类型,而不是对象源文件:http ://connect.facebook.net/en_US/all.js 行:37

4

1 回答 1

5

它并不像替换FB.Data.waitOnand那样简单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
        }
    }
});
于 2012-10-24T18:54:04.517 回答