代码之家  ›  专栏  ›  技术社区  ›  Shrouk Khan

使用facebook nodejs-sdk:OAuthException发布到组

  •  1
  • Shrouk Khan  · 技术社区  · 9 年前

    我正在尝试使用nodejsdk发布到facebook群组墙( https://github.com/node-facebook/facebook-node-sdk )

    这是我正在使用的一段代码:

    访问令牌(正常工作):

    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 回复  |  直到 9 年前
        1
  •  1
  •   Zeeshan Hassan Memon    9 年前

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

        2
  •  1
  •   lars.schwarz    9 年前

    您需要用户授予user_managed_groups和publish_actions权限。请记住,这两个权限都需要经过Facebook的审核。