我在尝试访问Google Auth时得到了400 Bad Request
。我正在使用本文中的演示代码:https://developers.google.com/analytics/solutions/articles/hello-analytics-api
我要求的地址是:https://accounts.google.com/o/oauth2/auth?client_id=875938******.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics.readonly&immediate=true&include_granted_scopes=true&proxy=oauth2relay452650337&redirect_uri=postmessage&origin=http%3A%2F%2Flocalhost%3A8080&response_type=token&state=895891795%7C0.1215960807&authuser=0
我已经成功创建了自己的ClientId和密钥。
有什么需要我照顾的吗?
谢谢,
您的请求有几个问题。首先是作用域,其次是respons_type。我不确定你在链接的页面上哪里找到了那个例子。你真的应该试着为你正在使用的语言找到一个库——它会让它变得更容易。但如果你想知道你应该发布的确切URL,它们应该是这样的。
请求用户允许您访问该帐户的初始URI应该是这样的。在这种情况下,范围注意我的范围与您的不同,我请求一个代码:
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
一旦他们同意,你就拿着从上面的请求中获得的身份验证码,并将其寄回请求access_token和refresh_token
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"
}
您从上述请求中获得的accesstoken是您将用于向服务发出请求的内容。一小时后,您的访问令牌将过期,您将需要申请一个新的访问令牌。您将获得上面的refreshtoken并将其张贴到:
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
}
希望这能有所帮助。