我想使用nodejs sdk(https://github.com/node-facebook/facebook-node-sdk)
发布到Facebook群组墙这是我正在使用的一段代码:
访问令牌(工作正常):
FB.api('oauth/access_token', {
client_id: appId,
client_secret: appSecret,
grant_type: 'client_credentials'
}, function (res) {
if (!res || res.error) {
var errorMessage = !res ? 'Unkown error' : res.error;
log.error(site + " Failed to get fb access token " + errorMessage);
}
var accessToken = res.access_token;
FB.setAccessToken(accessToken);
});
尝试发布:
var message = 'Hi from facebook-node-js';
FB.api( facebookGroupId + '/feed', 'POST', {
// access_token: appToken,
message: message
}, function (res) {
if (!res || res.error) {
console.error(!res ? 'error occurred' : res.error);
return;
}
console.log('Post Id: ' + res.id);
});
哪个失败了:
{ message: '(#200) The user hasn\'t authorized the application to perform this action',
type: 'OAuthException',
code: 200,
fbtrace_id: 'xxxxx' }
现在,这是一个服务器端应用程序,我无法弹出一些东西来请求权限。有人能指出我可以在哪里为应用分配所需的权限吗?
答案 0 :(得分:1)
你必须有访问令牌来完成这项工作,显然没有用户希望任何应用程序来保存她的Facebook凭据。所以正确的方法是首先弹出,产生访问令牌并利用它进行发布。
答案 1 :(得分:1)
您需要用户授予user_managed_groups和publish_actions权限。请注意,这两项权限都需要经过Facebook审核。