安装的应用程序的OAuth 2.0 - 我在哪里获得redirect_uri

时间:2016-02-01 00:55:02

标签: oauth google-api google-oauth google-apps google-cloud-platform

我正在通过说明使用OAuth2在已安装的(Windows)应用程序中访问https://developers.google.com/identity/protocols/OAuth2InstalledApp页面上的Gmail。这一切似乎都很简单,直到我得到关于"做出令牌请求的部分"。 POST我必须做的一个参数是redirect_uri,它说的是#34;你从开发者控制台获得的重定向URI。"

我已经从开发者控制台获得了我的ClientID和ClientSecret,但无法看到我从中获取redirect_uri的任何地方。

我错过了什么?感谢。

1 个答案:

答案 0 :(得分:1)

认证是一个三步或四步的过程

第一步是获取身份验证代码。此链接可以放在任何浏览器窗口中,它是HTTP GET

  

https://accounts.google.com/o/oauth2/auth?client_id= {的clientid} .apps.googleusercontent.com&安培; REDIRECT_URI =瓮:IETF:WG:OAuth的:2.0:OOB&安培;范围= https://www.googleapis.com/auth/analytics.readonly&response_type=code

一旦用户接受了访问权限,您将获得一个身份验证代码。

将该代码发送回服务器以获取刷新令牌和第一个访问令牌。这是一个HTTP POST。

https://accounts.google.com/o/oauth2/token
code=4/X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&client_id={ClientId}.apps.googleusercontent.com&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"
}

访问令牌只能工作一个小时,之后它将过期,您需要使用刷新令牌来获取新的访问令牌。

这也是HTTP Post

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
}

代码已从我的教程Google 3 legged oauth2中删除,它有更多的解释。