Facebook 使用FB.api()时是否应传递访问令牌?

Facebook 使用FB.api()时是否应传递访问令牌?,facebook,facebook-access-token,Facebook,Facebook Access Token,我只是有点困惑,在请求受保护的东西时,如何将访问令牌传递到FB.api() 我正在让我的应用程序登录并进行身份验证,但是如何使用FB.api()和我拥有的访问令牌呢 app.accessToken = response.authResponse.accessToken; // This is a valid access token. FB.api('/me/friends?access_token='+app.accessToken, {fields: 'name,id,location,p

我只是有点困惑,在请求受保护的东西时,如何将访问令牌传递到FB.api()

我正在让我的应用程序登录并进行身份验证,但是如何使用FB.api()和我拥有的访问令牌呢

app.accessToken = response.authResponse.accessToken; // This is a valid access token.

FB.api('/me/friends?access_token='+app.accessToken, {fields: 'name,id,location,picture,installed'}, function(response) {
    console.log(response);
});
这是将访问令牌传递到FB.api()的正确方法吗

在本例中,我的回复返回了朋友的姓名、id、位置和图片,但似乎没有“已安装”的数据,因为这些数据受到保护


我这样做对吗?

如果用户登录(例如使用FB.login),则不需要传递令牌。事实上,通过使用JavaScript SDK(或PHP SDK),您几乎不需要处理(用户)访问令牌

所以,你的电话是这样的:

FB.api('/me/friends', function(response) {
   console.log(response);
});
如果用户安装了应用程序,则获取信息:


如果请求扩展字段,则需要传递访问令牌。请参阅


尽管我明白为什么有些用户说,由于您的特定用途,您可能不需要传递访问令牌

通常,在某些情况下,您确实需要通过FB.api()传递访问令牌

完成此操作的方法是将其传递到参数对象中,如下所示:

FB.api('/{fb-graph-node-goes-here}/, {
  access_token: "TOKEN GOES HERE"
  //other parameters can go here aswell

}, function(response) {
  console.log(response);
});
我就是这样做的:

将访问令牌作为参数传递


哦,好的。我已经用FB.init()启动了整个过程,然后做了一个FB.getLoginStatus(),它调用上面的FB.api()。那么为什么“已安装”的数据没有回来呢?也许这在/me/friends end point中不可用?好吧,关于获取已安装的数据,我将在我的答案中添加一些链接。如果能看到如何执行OP所要求的操作的示例,那将非常好。我确实有一个场景,我需要传递访问令牌,但找不到任何示例。最简单的解决方案是查看facebook文档:我们需要传递访问令牌作为FB.api的参数。
FB.api("/me", { access_token : response.authResponse.accessToken }, {fields: ['last_name', 'first_name', 'name']},
        function (response) {
            console.log(response);
            console.log('Name: ' + response.name);
        }
      );