使用 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权限请求页面

  1. 配置权限请求页面信息

在这里插入图片描述

  1. 配置访问范围

在这里插入图片描述

  1. 配置测试用户

    在这里插入图片描述

创建授权凭据

  1. 选择凭据选项,依次点击创建凭据 > OAuth 客户端 ID

    在这里插入图片描述

    1. 配置客户端ID信息

      在这里插入图片描述

  2. 创建了凭据后就可以看到客户端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_idCredentials page中获取的客户端 ID。
client_secretCredentials page中获取的客户端密钥。
code初始请求返回的授权代码。
grant_type此字段的值必须设置为 authorization_code
redirect_uri重定向 URI。

postman验证请求:

在这里插入图片描述

调用 Google API

应用获得访问令牌后,就可以使用令牌代表指定用户账号调用该 API。

在这里插入图片描述

结语

以上就是实现Google OAuth2.0访问Google API的全部流程。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐