使用facebook nodejs sdk发布到组:OAuthException

时间:2016-03-05 03:05:02

标签: node.js facebook facebook-graph-api

我想使用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' }

现在,这是一个服务器端应用程序,我无法弹出一些东西来请求权限。有人能指出我可以在哪里为应用分配所需的权限吗?

2 个答案:

答案 0 :(得分:1)

你必须有访问令牌来完成这项工作,显然没有用户希望任何应用程序来保存她的Facebook凭据。所以正确的方法是首先弹出,产生访问令牌并利用它进行发布。

答案 1 :(得分:1)

您需要用户授予user_managed_groups和publish_actions权限。请注意,这两项权限都需要经过Facebook审核。