从Google OAuth 1.0迁移到OAuth 2.0期间出现问题-OAuth客户端被禁用

从Google OAuth 1.0迁移到OAuth 2.0期间出现问题-OAuth客户端被禁用,oauth,google-oauth,Oauth,Google Oauth,我正试图按照文档“”将oAuth迁移到oAuth2,但不断出现错误 在API开发人员控制台的“API&auth”-“凭据”部分中,我们为web应用程序设置了1个客户机ID以及许多服务帐户客户机ID 对于设置的每个客户端ID,客户端ID的格式似乎为xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com 如果我使用格式为[XXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我正试图按照文档“”将oAuth迁移到oAuth2,但不断出现错误

在API开发人员控制台的“API&auth”-“凭据”部分中,我们为web应用程序设置了1个客户机ID以及许多服务帐户客户机ID

对于设置的每个客户端ID,客户端ID的格式似乎为
xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com

如果我使用格式为
[XXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com
]的“web应用程序的客户端Id”的确切Id,则会出现错误

{
  "error" : "invalid_client"
}
如果我使用更通用的客户端ID[xxxxxxxxxxx.apps.googleusercontent.com ]然后我得到以下错误

    {
        "error" : "disabled_client",
        "error_description" : "The OAuth client was disabled."
    }
这是我从菲德勒那里得到的发帖请求

POST https://accounts.google.com/o/oauth2/token HTTP/1.1
Authorization: OAuth realm="",oauth_consumer_key="<consumerKey>",oauth_token="<token>",oauth_timestamp="1400680750",oauth_nonce="6637551",oauth_signature_method="HMAC-SHA1",oauth_signature="I%2FCOsR1BrGQHnqTeyhX4GUrKrv8%3D"
Content-Type: application/x-www-form-urlencoded
Host: accounts.google.com
Content-Length: 151
Expect: 100-continue
Connection: Keep-Alive

grant_type=urn:ietf:params:oauth:grant-type:migration:oauth1&client_id=<clientID>.apps.googleusercontent.com&client_secret={<client_secret>}
有什么建议吗?

这里有一个相关的帖子:


至于Owen的建议,我很确定错误与oauth1和oauth2客户端类型验证无关,而是与提供的oauth2凭据(客户端id和客户端机密)有关。

结果表明,我发送给google的帖子正文不正确

原来我已经发了

grant_type=urn:ietf:params:oauth:grant-type:migration:oauth1&client_id=<clientID>.apps.googleusercontent.com&client_secret={<client_secret>}
grant_type=urn:ietf:params:oauth:grant type:migration:oauth1&client_id=.apps.googleusercontent.com&client_secret={}
注意client_secret周围的{}。当我删除这些,我就不再得到错误

现在,我可以以
xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
的格式传入客户端id,并且不带{}的客户端密码,我得到了成功的响应


我收到的另一个错误的原因是,格式为xxxxxxxxxxx.apps.googleusercontent.com的客户端id是一个旧的客户端id,已被删除,在Google开发者控制台上不再可见。

检查您的OAuth 2.0客户端类型(web应用程序)匹配OAuth 1.0使用者类型。我试图找出OAuth 1.0使用者类型是什么,但我不确定如何检查它。根据文档“如果以下情况之一为真,则应用程序被标识为本机应用程序:应用程序已设置其本机应用程序名称,或者应用程序是Chrome扩展。
应用程序肯定不是Chrome扩展,我看不出本机应用程序名称将设置在何处。”
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Date: Wed, 21 May 2014 13:59:16 GMT
Content-Disposition: attachment; filename="json.txt"; filename*=UTF-8''json.txt
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alternate-Protocol: 443:quic
Transfer-Encoding: chunked

5b
{
  "error" : "disabled_client",
  "error_description" : "The OAuth client was disabled."
}
0
grant_type=urn:ietf:params:oauth:grant-type:migration:oauth1&client_id=<clientID>.apps.googleusercontent.com&client_secret={<client_secret>}