Google 适合 Api 来自远程客户端的 403 错误
Google Fit Api 403 Error from remote client
我有一个托管在 IIS 7 上的 Web 应用程序,它使用 Google Fit API 进行 Http 调用,我能够成功发送 POST 并检索访问权限令牌,之后我为以下 uri 执行 GET:
以下是我如何构建请求并查看响应:
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.ContentLength = 0;
request.Accept = "application/json";
request.Headers.Add("Authorization", "Bearer " + dict["access_token"]);
response = (HttpWebResponse)request.GetResponse();
respStream = response.GetResponseStream();
sResponse = new StreamReader(respStream).ReadToEnd();
respStream.Close();
Response.Write(sResponse);
当我在主机服务器上的浏览器上 运行 这个应用程序时,我成功地获得了一个 json 对象(这不是我期望的 json,但这是另一个问题).但是,当我尝试在远程客户端上访问该站点时,我收到一个 403 错误,指向我尝试检索响应时的错误。有什么想法吗?
这可能取决于您如何获得 access_token
值。
您在检索访问令牌后多久发出此请求?它仅在一个小时内有效,因此您可能需要使用刷新令牌获取新的。
关于 access/refresh 这个问题的标记有更多资源:
Google OAuth2 Refresh_token expires when Access_token does
更新:原来是权限问题。我试图访问一个我没有范围的数据源,在主机上访问时它没有 return 403 的事实让我偏离了轨道。仍然很奇怪,当在主机服务器上请求时它没有 return 403(它只是 returned 一个空的 json 对象)......如果你看到这个并且有想法为什么,欢迎评论。我很好奇。
我有一个托管在 IIS 7 上的 Web 应用程序,它使用 Google Fit API 进行 Http 调用,我能够成功发送 POST 并检索访问权限令牌,之后我为以下 uri 执行 GET:
以下是我如何构建请求并查看响应:
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.ContentLength = 0;
request.Accept = "application/json";
request.Headers.Add("Authorization", "Bearer " + dict["access_token"]);
response = (HttpWebResponse)request.GetResponse();
respStream = response.GetResponseStream();
sResponse = new StreamReader(respStream).ReadToEnd();
respStream.Close();
Response.Write(sResponse);
当我在主机服务器上的浏览器上 运行 这个应用程序时,我成功地获得了一个 json 对象(这不是我期望的 json,但这是另一个问题).但是,当我尝试在远程客户端上访问该站点时,我收到一个 403 错误,指向我尝试检索响应时的错误。有什么想法吗?
这可能取决于您如何获得 access_token
值。
您在检索访问令牌后多久发出此请求?它仅在一个小时内有效,因此您可能需要使用刷新令牌获取新的。
关于 access/refresh 这个问题的标记有更多资源:
Google OAuth2 Refresh_token expires when Access_token does
更新:原来是权限问题。我试图访问一个我没有范围的数据源,在主机上访问时它没有 return 403 的事实让我偏离了轨道。仍然很奇怪,当在主机服务器上请求时它没有 return 403(它只是 returned 一个空的 json 对象)......如果你看到这个并且有想法为什么,欢迎评论。我很好奇。