我正在尝试使用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>
在他们的网站上没有很好的记录!任何想法?
答案 0 :(得分:-1)
是的,文档令人困惑,但你错了,都错了。请按照此article进行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);
}
});
}
您可以从here获取应用的访问令牌。
<强> [编辑] 强>
请勿在评论中使用CBroe建议的应用访问令牌。