我正在按照说明进行操作,以使用OAuth2在已安装的(Windows(应用程序中访问Gmail,在页面 https://developers.google.com/identity/protocols/OAuth2InstalledApp 上。在我进入"提出令牌请求"的部分之前,这一切似乎都很简单。我必须做的 POST 参数之一是 redirect_uri,它说的是"您从开发人员控制台获得的重定向 URI"。
我已从开发人员控制台获取了我的 ClientID 和 ClientSecret,但在任何地方都看不到我从中获得redirect_uri。
我错过了什么?谢谢。
身份验证基本上是一个三到四个步骤的过程
第一步是获取身份验证代码。 此链接可以放置在任何浏览器窗口中,它是一个HTTP GET
https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=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帖子
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 腿 oauth2 中撕掉,它有更多的解释。