错误401使用Oauth2从Google请求访问令牌

时间:2014-01-24 13:44:52

标签: java google-oauth google-oauth-java-client

我正在编写一个需要访问Google任务API的Java客户端应用程序。我按照https://developers.google.com/accounts/docs/OAuth2InstalledApp页面上的说明操作,并设法获取授权码。但是,当我尝试获取访问令牌时,我不断收到错误400“错误请求”。

我正在使用Firefox的Poster附加组件进行测试。我向https://accounts.google.com/o/oauth2/token发送了一条帖子请求,内容为:

code=<the-code-i-got-in-step1>&
client_id=1097620474561-gusvm8cq428h86r7pcum285cuffssncj.apps.googleusercontent.com&
client_secret=,my-client-secret>&
redirect_uri=hurn:ietf:wg:oauth:2.0:oob&
grant_type=authorization_code

有关我可能做错的任何建议吗?

2 个答案:

答案 0 :(得分:1)

我最终弄明白了。在对invalid_grant trying to get oAuth token from google

所述的代码进行初始请求时,我没有明确指定脱机访问

感谢所有帮助我解决这个问题的人

答案 1 :(得分:0)

如果是400错误(而不是401 - 你的问题中都提到了两个代码),那么很可能是请求格式错误,请检查通用HTTP内容,例如:

  1. 确保它是一个POST - 并且您将数据作为正文,而不是查询字符串。
  2. 设置了内容长度。
  3. Content-Type设置为application / x-www-form-urlencoded。
  4. 每个表单参数实际上都是urlencoded
  5. 我建议尽可能使用Google提供的客户端库,可以在此处找到已安装的客户端应用程序的示例: https://code.google.com/p/google-api-java-client/wiki/OAuth2#Installed_Applications