我正在尝试使用javascript sdk发布到连接用户的Facebook墙上,这是我的代码:
var connecter=false;
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxx', // App ID
oauth : true,
channelUrl : '//www.streamazing.net/js/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.login', function (response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function (response) {
window.location.reload();
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
connecter=true;
FB.api('/me', function(user) {
var user2=user;
console.log(user2.name);
});
}
else connecter=false;
});
var body = 'This is a test';
FB.api('/me/feed', 'post', { message: body }, function(response) {
if (!response || response.error) {
console.log(response.error);
} else {
alert('Post ID: ' + response.id);
}
});
};
这是控制台日志:
code: 2500
message: "An active access token must be used to query information about the current user."
type: "OAuthException"
我正在使用此代码询问许可:
<fb:login-button autologoutlink='true' scope='email,user_birthday,status_update,publish_stream'></fb:login-button>
我不明白为什么facebook会问我一个访问令牌,有人能帮帮我吗? 非常感谢你。
答案 0 :(得分:0)
如果您想使用Javascript SDK发布到用户的Feed,请使用FB.ui。 http://developers.facebook.com/docs/reference/javascript/FB.ui/
否则,publish_stream扩展权限所需的访问令牌存储在response.authResponse.accessToken下的FB.getLoginStatus方法中。 http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
答案 1 :(得分:0)
您需要使用access_token =向所有FB网址发出请求。
答案 2 :(得分:0)
调用FB.init();在声明了所有fb sdk函数之后。