我正在研究一个Elixir Phoenix网站项目,我想与Google的Indexing API进行交互。
Google使用OAuth2对api请求进行身份验证,实际上对此有不错的documentation。
但是它仅说明使用Python,Java,PHP或JS中受支持的库之一的过程。
我想自己发出HTTP请求以检索该访问令牌。但是请求格式(包括标头或参数)在任何地方都没有记录,我什至无法从库的源代码中弄清楚。
我尝试在邮递员中使用“ OAuth 2.0”请求类型请求https://accounts.google.com/o/oauth2/token(还有其他合格的URL)。 但这仅仅是猜测和尝试。所有的研究都无济于事。
答案 0 :(得分:2)
Using OAuth 2.0 for Web Server Applications中有一些有用的说明,包括HTTP / Rest示例。每个步骤都有完整记录的各个参数。这是一些有用的摘录。
将用户发送到Google的OAuth 2.0服务器。示例网址:
https://accounts.google.com/o/oauth2/v2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.metadata.readonly&
access_type=offline&
include_granted_scopes=true&
state=state_parameter_passthrough_value&
redirect_uri=http%3A%2F%2Foauth2.example.com%2Fcallback&
response_type=code&
client_id=client_id
检索授权码(您的域)。示例:
https://oauth2.example.com/auth?code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7
请求访问令牌。示例:
POST /oauth2/v4/token HTTP/1.1
Host: www.googleapis.com
Content-Type: application/x-www-form-urlencoded
code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&
client_id=your_client_id&
client_secret=your_client_secret&
redirect_uri=https://oauth2.example.com/code&
grant_type=authorization_code
使用API。示例:
GET /drive/v2/files HTTP/1.1
Authorization: Bearer <access_token>
Host: www.googleapis.com/