您可以使用任何能够处理HTTP POST和HTTP GET的语言进行Google身份验证。
注意:client_id、redirect_uri、client_secret都是在Google开发者控制台中为您的应用设置的值。Scope将取决于您想要访问哪个Google Api,可以用逗号分隔多个。在本例中,我将使用Google Analytics的范围。
第一步请求访问:
这是您需要向用户显示以请求访问权限的URL。这是一个HTTP Get调用,可以放置在任何Web浏览器中。 注意:response_type=code
https://accounts.google.com/o/oauth2/auth?client_id={clientid}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code
第二步:
一旦他们点击上面的链接,您应该得到一个身份验证代码。
以下请求将交换代码以获取访问令牌和刷新令牌。这是一个HTTP POST请求。注意:grant_type=authorization_code
https://accounts.google.com/o/oauth2/token
code=4/X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&client_id={ClientId&client_secret={ClientSecret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code
响应:
{ "access_token" : "ya29.1.AADtN_VSBMC2Ga2lhxsTKjVQ_ROco8VbD6h01aj4PcKHLm6qvHbNtn-_BIzXMw", "token_type" : "Bearer", "expires_in" : 3600, "refresh_token" : "1/J-3zPA8XR1o_cXebV9sDKn_f5MTqaFhKFxH-3PUPiJ4" }
使用刷新令牌:
从上述请求中获取的access_token是您将用于向服务进行请求的令牌。一个小时后,您的访问令牌将过期,您需要请求一个新的访问令牌,您可以使用上面获取的refresh_token并将其以HTTP Post方式发送到:注意:grant_type=refresh_token
https://accounts.google.com/o/oauth2/token
client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&refresh_token=1/ffYmfI0sjR54Ft9oupubLzrJhD1hZS5tWQcyAvNECCA&grant_type=refresh_token
这是响应的内容:
{ "access_token" : "ya29.1.AADtN_XK16As2ZHlScqOxGtntIlevNcasMSPwGiE3pe5ANZfrmJTcsI3ZtAjv4sDrPDRnQ", "token_type" : "Bearer", "expires_in" : 3600 }
我的完整教程谷歌三级oauth2流程
用法:
你只需在请求Gmail API时在末尾附加access_token=yourtoken即可访问。
或者你可以设置标头。
Authorization Bearer accessToken