3

使用 Node.jsfacebook-node-sdk模块发布 Open Graph 操作给了我{"error": "An active access token must be used to query information about the current user."}.

var FB = require( 'fb' )
var path = '/me?' + namespace + ':' + action_type_name
var body = {
     access_token: myAccessToken,
     myAction : myCustomObjectURL
}
FB.api( path, 'post', body, function( res )
{
    if( res.error ) {
        console.log( 'the call to open graph failed: ' + res.error.message );
    }
    else {
        console.log( 'success' )
    }
})

如果我打印此访问令牌并将其与 cURL ( curl https://graph.facebook.com/me?access_token=myAccessToken) 一起使用,它将正确返回,没有错误。Facebook 还显示该应用有权以该用户身份发帖。那么我在这里做错了什么?

4

2 回答 2

0

哦,愚蠢的问题。事实证明,我需要在 URL 路径中使用斜杠而不是问号:path = '/me/' + ...

于 2012-12-03T21:35:49.747 回答
0

实际上这是节点 facebook api 的错误。当您使用“?”时 在您的 api 调用中,accesstoken 会附加另一个“?” https://github.com/Thuzi/facebook-node-sdk/blob/master/fb.js#L268

这会导致像这样的 api 调用:https ://graph.facebook.com/me/friends?limit=10?access_token=vSAEFfionhaWFwai ...

你看到多重'?因此,在请求中,Facebook 无法再找到访问令牌。

于 2014-04-05T14:56:38.930 回答