使用 OAuth 2.0 访问 Google Gmail API
Google API 使用OAuth 2.0协议进行身份验证和授权,客户端应用需要从 Google 授权服务器请求访问令牌,从响应中提取令牌,并将令牌发送到您要访问的 Google API。
启用 API
任何调用 Google API 的应用都需要在 API Console中启用这些 API。
步骤:
1.首先注册开发者账号,https://console.cloud.google.com/
2.创建一个新项目
3.启用 API。API Library 列出了所有可用的 API。如果列表中没有显示可以使用搜索功能查找该 API。
配置OAuth权限请求页面
- 配置权限请求页面信息
- 配置访问范围
-
配置测试用户
创建授权凭据
-
选择凭据选项,依次点击创建凭据 > OAuth 客户端 ID
-
配置客户端ID信息
-
-
创建了凭据后就可以看到客户端ID和密钥
获取 OAuth 2.0 访问令牌
创建授权请求
根据谷歌 Google Web 授权文档,可知获取授权URL的请求是:
请求方法:Get
接口地址: https://accounts.google.com/o/oauth2/v2/auth
必填参数:
client_id:应用的客户端 ID(必需)
redirect_uri:确定在用户完成授权流程后 API 服务器会将用户重定向到何处(必需)
response_type:web授权固定填code(必需)
scope:后台配置的scope,如果有多个,用空格隔开(必需)
拼接后的请求地址:
https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=YOUR_SCOPE&response_type=code
Google授权页面
如果用户批准了访问请求,响应中就会包含授权代码。
授权代码响应:
http://localhost/?code=GOOGLE_RESPONSE_CODE&scope=YOUR_SCOPE&authuser=0&prompt=consent
code是谷歌生成的,用于换取token
scope是你传的scope,原样返回了
换取访问令牌
调用 https://oauth2.googleapis.com/token
端点并设置以下参数:
字段 | |
---|---|
client_id | 从 Credentials page中获取的客户端 ID。 |
client_secret | 从 Credentials page中获取的客户端密钥。 |
code | 初始请求返回的授权代码。 |
grant_type | 此字段的值必须设置为 authorization_code 。 |
redirect_uri | 重定向 URI。 |
postman验证请求:
调用 Google API
应用获得访问令牌后,就可以使用令牌代表指定用户账号调用该 API。
结语
以上就是实现Google OAuth2.0访问Google API的全部流程。