Facebook All.Js新的错误

ham*_*rag 3 facebook-javascript-sdk

我有一个使用Facebook JS SDK的网站,它在两年多的时间里完美运行

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

任何帮助将不胜感激

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

小智 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
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

谷歌搜索和搜索可怕的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
        }
    }
});
Run Code Online (Sandbox Code Playgroud)