Google+ OAuth授权错误(无效令牌)

时间:2012-07-03 08:25:06

标签: api oauth-2.0 google-plus

在Google+上,我需要访问用户的时间表。 我使用以下代码进行身份验证:

private string GetUrl(string url, Dictionary<string, string> parameters)
        {
            if (parameters.Count == 0)
            {
                return url;
            }

            string query_string = String.Empty;
            foreach (var k in parameters)
                query_string += k.Key + "=" + (k.Value) + "&";

            query_string = query_string.TrimEnd('&');

            return url + "?" + query_string;
        }

var req = GetUrl(auth_endpoint, new Dictionary<string, string>()
            {
                { "response_type", "code" },
                { "client_id", "XXXXXX.apps.googleusercontent.com" },
                { "redirect_uri", "http://localhost:58772/GooglePlus.aspx" },
                { "scope", "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me" },
                { "state", "authenticated" },
            });

            Response.Redirect(req);

但是当我使用'Authorization:Bearer XXXX'标题请求https://www.googleapis.com/oauth2/v1/userinfo API时,我收到以下错误。

{
 "error": {
  "errors": [
   {
    "domain": "com.google.auth",
    "reason": "invalidAuthentication",
    "message": "invalid token",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "invalid token"
 }
}

使用'curl'发出请求也是如此。 我复制并粘贴了谷歌大量时间给出的验证码...相同的结果。身份验证代码如下所示:4 / XXX-XXXXXXXXXXXXXXX.XXXXXXXXXXXXX_XXXXX

我该如何解决? 谢谢

1 个答案:

答案 0 :(得分:0)

这可能是因为错误的url用于验证令牌。有同样的问题。试试这个网址: - https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=<token>。希望它有所帮助。