8

我想检查如何处理access_token. 所以,我curl用来执行以下查询:

curl -X POST https://graph.facebook.com/oauth/access_token -d "client_id=<appId>&client_secret=<secret>&grant_type=client_credentials&redirect_uri="

它返回 的值access_token

然后,我想获取我的朋友列表:

curl -X POST https://graph.facebook.com/me/friends -d "access_token=<token>"

它返回此错误:

{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500}}

有什么提示吗?

4

4 回答 4

5

最简单的方法是使用图形 API 资源管理器,使用您的 facebook 开发者帐户去那里获取和访问令牌:

生成基本用户访问令牌

当您开始构建自己的应用程序时,您需要了解访问令牌以及如何使用 Facebook 登录生成它们,但现在,我们可以通过 Graph API Explorer 快速获得一个:

Click on the Get Token button in the top right of the Explorer.
Choose the option Get User Access Token.
In the following dialog don't check any boxes, just click the blue Get Access Token button.
You'll see a Facebook Login Dialog, click **OK" here to proceed.

您可以将图形 api explorer 用作 curl,但如果您想使用真正的 curl 进行尝试,最后一个 api v2.8 的 sintaxis 如下:

curl -i -H 'Authorization: Bearer YOUR_ACCES_TOKEN' -XGET 'https://graph.facebook.com/v2.8/me'

就我而言:

toni@MBP-de-Antonio  ~  curl -i -H 'Authorization: Bearer MY-ACCES_TOKEN' -XGET 'https://graph.facebook.com/v2.8/me'
HTTP/1.1 200 OK
x-app-usage: {"call_count":2,"total_cputime":3,"total_time":3}
Expires: Sat, 01 Jan 2000 00:00:00 GMT
x-fb-trace-id: BnLv25AHTjq
facebook-api-version: v2.8
Content-Type: application/json; charset=UTF-8
x-fb-rev: 2929740
Cache-Control: private, no-cache, no-store, must-revalidate
Pragma: no-cache
ETag: "39875e94193dcd62dcbbf583fc0008c110820a6c"
Access-Control-Allow-Origin: *
X-FB-Debug: fvO9W8Bfl+BihEy/3aZyzOiMrXOkrbK8q1I3Xk2wYnI7sSujZNC6vQzR4RoTWK7K3Hx6EdzoE2kZ/aWhsXe4OA==
Date: Sat, 01 Apr 2017 06:55:52 GMT
Connection: keep-alive
Content-Length: 61

{"name":"Antonio Juan Querol Giner","id":"10204458008519686"}%
于 2017-04-01T06:59:01.580 回答
0

我认为您的问题可能是您尝试访问自己的数据时使用的“/me”标识符。(根据您的客户端 ID 设置,因为您可能指的是应用程序而不是您自己,请尝试使用您的配置文件 ID 而不是“/me”)。

还要检查一下https://stackoverflow.com/a/6701982/1546542

于 2012-11-28T21:07:18.130 回答
0

您是否尝试过使用调试器?在此处调试您的访问令牌,它会告诉您有关该访问令牌的信息,以及它是否与用户相关: https ://developers.facebook.com/tools/debug

另外,你为什么要使用 POST 来获取 /me/friends?

于 2012-11-28T21:13:08.587 回答
0

您应该在 curl -X POST 之后用双引号括起来 "https://...."。

于 2019-05-27T17:48:53.233 回答