3

Facebook JS SDK を使用した Web サイトがあり、2 年以上完全に機能しています。

今日、Facebook の部分 (SDK を使用してメイン ページのタブにユーザーのタイム ラインを表示する) が機能しなくなり、ページが読み込まれると、この JavaScript エラーが表示されます。

どんな助けでも大歓迎です

エラー: エラー: 式はオブジェクトではなく文字列型です ソース ファイル: http://connect.facebook.net/en_US/all.js 行: 37

4

1 に答える 1

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開発者フォーラムをグーグルで検索した後。ここで別の投稿に出くわすまで、探していたものを見つけることができませんでした。新しい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 に答える