在 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);
但是,当我使用“授权:承载 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_XXXXXX
我该如何解决?谢谢