【问题标题】:Is it possible to pass Facebook Graph API access token through request header?是否可以通过请求标头传递 Facebook Graph API 访问令牌?
【发布时间】:2023-03-18 22:56:02
【问题描述】:

我正在使用Postman 测试 Facebook Graph API v2.3。 虽然可以通过将访问令牌放入查询字符串来获得响应,如下所示:

https://graph.facebook.com/v2.3/me?access_token=my_access_token

我想知道是否可以对 HTTP 请求标头做同样的事情,就像这样:

GET /v2.3/me HTTP/1.1
Host: graph.facebook.com
Authorization: <my_access_token>
Cache-Control: no-cache
Postman-Token: <postman_token>

基于 Stackoverflow 上的类似问题(即How should a client pass a facebook access token to the server?),这似乎应该是可能的。

对此有什么想法吗?


编辑:

让我感兴趣的是,当我使用 Facebook Developers 提供的API Graph Explorer 时,该沙箱中似乎也没有查询字符串。这是如何运作的?

Facebook API Graph Explorer 请使用查询字符串作为访问令牌。感谢@CBroe的回复。

【问题讨论】:

  • 当然,Graph API Explorer 将访问令牌作为查询字符串参数传递(用于 GET 请求),当您查看它在浏览器的开发人员工具网络面板中发出的请求时,您可以清楚地看到。
  • @CBroe 我认为你是对的。检查网络面板后,很明显 Graph API Explorer 使用查询字符串传递了访问令牌。这是否意味着查询字符串是传递它的唯一方法?

标签: facebook facebook-graph-api oauth-2.0


【解决方案1】:

有可能

Authorization: Bearer AccessTokenHere

例如

curl --header "Authorization: Bearer CAAC...ZD" https://graph.facebook.com/me

此答案之前建议使用“OAuth”而不是“Bearer”作为token type。两者都可以,但“Bearer”是标准中出现的类型。此外,在完成 Facebook 的 OAuth 流程时,他们的回复中的token_typebearer。所以总而言之,“Bearer”更有意义。

【讨论】:

  • 太棒了!!我只是错过了访问令牌前面的“OAuth”。谢谢@phwd
  • 这是否记录在 Facebook 的某个地方?
  • @phwd 谢谢。我不清楚 Facebook 的 API 是否符合 OAuth(但这是有道理的)。
猜你喜欢
  • 1970-01-01
  • 2012-03-04
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多