在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
我该如何解决? 谢谢
答案 0 :(得分:0)
这可能是因为错误的url用于验证令牌。有同样的问题。试试这个网址: - https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=<token>
。希望它有所帮助。