在Google+ API上进行身份验证后,我终于成功地使用https://www.googleapis.com/plus/v1/people/{MyUserId}?key={ApiKey}检索了我的信息
然而,尽管我确实获得了一个作用域为https://www.googleapis.com/auth/plus.me的访问令牌,但我不能请求"me": https://www.googleapis.com/plus/v1/people/me?key={ApiKey}
我结束了一个401未经授权的请求…很晚了,我不知道我错过了什么。
下面是我的代码: string apiUrl = "https://www.googleapis.com/plus/v1/people/me?key={my api key";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl);
request.Method = HttpMethod.GET.ToString();
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
=> 401 error
谢谢你的帮助!
这并没有直接回答你的问题,但是你尝试过。net的Google api客户端库吗?
见:http://code.google.com/p/google-api-dotnet-client/
http://code.google.com/p/google-api-dotnet-client/wiki/OAuth2http://code.google.com/p/google-api-dotnet-client/wiki/APIs谷歌+ _API
401错误很可能意味着您的访问令牌已经过期,需要使用刷新令牌进行刷新。
我迟到了3年,但是我在寻找一个几乎相同问题的解决方案时发现了这篇文章。我试图避免使用谷歌的API,然而,所以我想我应该张贴我自己的解决方案,以防有人想看到一种没有谷歌API的方法。我使用RestSharp来处理HTTP请求,但这不是必要的。
//craft the request
string requestUrl = "https://www.googleapis.com/plus/v1/people/me?access_token=" + AccessToken;
RestClient rc = new RestClient();
RestRequest request = new RestRequest(requestUrl, Method.GET);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("x-li-format", "json");
request.RequestFormat = DataFormat.Json;
//send the request, and check the response.
RestResponse restResponse = (RestResponse)rc.Execute(request);
if (!restResponse.ResponseStatus.Equals(ResponseStatus.Completed)) { return null; }
问题中与原始实现的主要区别不是我使用了RestSharp——这无关紧要。主要区别在于,我在查询字符串中传递了一个access_token,而不是一个键。