是否可以通过请求标头传递 Facebook Graph API 访问令牌?
Posted
技术标签:
【中文标题】是否可以通过请求标头传递 Facebook Graph API 访问令牌?【英文标题】:Is it possible to pass Facebook Graph API access token through request header? 【发布时间】:2015-07-04 19:03:48 【问题描述】:我正在使用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>
基于 *** 上的类似问题(即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 使用查询字符串传递了访问令牌。这是否意味着查询字符串是传递它的唯一方法? 【参考方案1】:有可能
Authorization: Bearer AccessTokenHere
例如
curl --header "Authorization: Bearer CAAC...ZD" https://graph.facebook.com/me
此答案之前建议使用“OAuth”而不是“Bearer”作为token type。两者都可以,但“Bearer”是标准中出现的类型。此外,在完成 Facebook 的 OAuth 流程时,他们的回复中的token_type
是bearer
。所以总而言之,“Bearer”更有意义。
【讨论】:
太棒了!!我只是错过了访问令牌前面的“OAuth”。谢谢@phwd 这是否记录在 Facebook 的某个地方? @phwd 谢谢。我不清楚 Facebook 的 API 是否符合 OAuth(但这是有道理的)。以上是关于是否可以通过请求标头传递 Facebook Graph API 访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章
如何在所有请求标头中传递授权令牌 - Spring Boot java