0

Facebook API を使用してパブリック Facebook ページの投稿にアクセスしようとしていますが、適切な資格情報をすべて使用しても認証できないようです。FB.api は次を返します。

{"error":{"type":"http","message":"unknown error"}}

'access token 1: line 1' にエラーが記録されています。

Uncaught ReferenceError: TRJg376YTvXfk6sMur4Mggh5YnU is not defined access_token:1

(匿名関数)

私が使用しているコードは次のとおりです。

<script src="http://connect.facebook.net/en_US/all.js"></script>
<div id="fb-root"></div>
<button name="my_full_name" onclick="connectToFacebook()" value="My Name" />

<script>
function connectToFacebook() {

    FB.api('https://graph.facebook.com/oauth/access_token',
    'get',
    {client_id:'xxxxxxxxxx', client_secret:'xxxxxxxxxx',grant_type:'client_credentials'}, //client_credentials
        function(response) {
            alert(JSON.stringify(response));
        });

        FB.api("/publicpage/feed",
                function (response) {
                    console.log(response);
                });

    }
</script>

それは彼らのサイトで十分に文書化されていません! 何か案は?

4

1 に答える 1

-1

はい、ドキュメントは混乱していますが、あなたは間違っています、すべて間違っています。Facebook Javascript SDK の基本的なセットアップについては、この記事に従ってください。

その記事ではユーザー アクセス トークンを使用していましたが、ページのパブリック投稿にアクセスしたい場合は、アプリ アクセス トークンを使用できます。アプリ アクセス トークンの利点は、有効期限がないことです。最終的にはあなたの選択です。

現在ログインしているユーザーのアクセス トークンを使用して公開投稿を取得する

function getPosts() {           

       FB.api('/thepcwizardblog/feed', { limit: 10 }, function (response) {
            for (var i = 0, l = response.data.length; i < l; i++) {
                var post = response.data[i];
                var userid = post.from.id;

                var msg;

                if (post.message) {                        
                    msg = post.message;                        
                }
                else {                
                    msg = post.description;                        
               }

               console.log(userid + msg);
            }
        });
}

アプリ アクセス トークンを使用して公開投稿を取得する

function getPosts() {           

       FB.api('/thepcwizardblog/feed?access_token='+accessToken+'', { limit: 10 }, function (response) {
            for (var i = 0, l = response.data.length; i < l; i++) {
                var post = response.data[i];
                var userid = post.from.id;

                var msg;

                if (post.message) {                        
                    msg = post.message;                        
                }
                else {                
                    msg = post.description;                        
               }

               console.log(userid + msg);
            }
        });
}

ここからアプリのアクセス トークンを取得できます。

[編集]

コメントでCBroeが提案しているように、アプリアクセストークンを使用しないでください。

于 2013-04-19T06:58:20.677 に答える