0

我正在尝试使用 Facebook API 访问公共 Facebook 页面的帖子,但即使使用所有正确的凭据,我似乎也无法进行身份验证。FB.api 返回:

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

并且在“访问令牌 1:第 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 回答