HttpError 400:访问 Google Extended Trends API for Health 时出现错误请求
Posted
技术标签:
【中文标题】HttpError 400:访问 Google Extended Trends API for Health 时出现错误请求【英文标题】:HttpError 400:Bad request when accessing Google Extended Trends API for Health 【发布时间】:2018-02-26 23:13:42 【问题描述】:我已获得使用专用 Google Extended Trends API for Health 进行研究的许可。 我想训练自己使用该工具,所以首先在 Google 提供的 Google Extended Trends API for Health-Getting Started Guide.pdf 文件中实现示例 python 代码。 在我看来,这段代码应该可以工作。如果我得到它的工作,我可以开始修改它来创建我自己的请求。如果我让它工作......
我正在使用 Python 3.6.3
我在这里看到了类似的帖子: Google Extended Trends API for Health in python 但他们没有得到答案。
这是我在运行代码时得到的完整回溯:
Traceback(最近一次通话最后一次):
文件“C:\Google 趋势\Google Trends_Health API\Google 趋势示例代码.py”,第 156 行,在 main() 中
文件“C:\Google 趋势\Google Trends_Health API\Google 趋势示例代码.py”,第 142 行,主频 = 'day')
GetQueryVolumes res = req.execute () 中的文件“C:\Google 趋势\Google Trends_Health API\Google 趋势示例代码.py”,第 104 行
文件“C:\Program Files\Python36\lib\site-packages\oauth2client_helpers.py”,第 133 行,在 positional_wrapper 中 返回包装(*args,**kwargs)
文件“C:\Program Files\Python36\lib\site-packages\googleapiclient\http.py”,第 839 行,正在执行中
引发 HttpError(resp, content, uri=self.uri) googleapiclient.errors.HttpError:https://www.googleapis.com/trends/v1beta/timelinesForHealth?terms=flu&terms=cough&time.startDate=2011-01-01&time.endDate=2015-01-01&timelineResolution=day&geoRestriction.region=US- MA&key=是的,就像我在这里展示的那样!&alt=json 返回“错误请求”>
我在回溯中看到它正在从 OAuth 文件夹调用 helpers.py 模块,所以想知道这一点:400 (Bad Request) when requesting GA API 但指南说:“注意:此 API 不需要 OAuth2。”
我还可以在仪表板上看到请求正在注册,因此它一定与 JSON 请求的实际格式有关。我不是 JSON 专家,所以我可能需要帮助。 从上面提取的请求是: https://www.googleapis.com/trends/v1beta/timelinesForHealth?terms=flu&terms=cough&time.startDate=2011-01-01&time.endDate=2015-01-01&timelineResolution=day&geoRestriction.region=US-MA&key=APIKEY&alt=json
关于出了什么问题的任何线索?我尝试从 v1beta 更改 API 版本,这给了我一个错误版本名称的特定错误,所以不是版本名称有问题。 我似乎找不到任何明确的答案。
谢谢
【问题讨论】:
【参考方案1】:经过一番尝试,我意识到 json 字符串的格式很好,这只是 API 不想在那个时间范围内给出那个分辨率(天)的问题。我将时间范围缩短到 time.startDate=2015-01-01&time.endDate=2015-12-31 并且有效。 我想 API 方法的一些指南可能会有所帮助。 尽管如此,通过反复试验,我应该能够弄清楚我能做什么,不能做什么。
【讨论】:
【参考方案2】:我现在面临着几乎相同的问题。我认为示例代码中的罪魁祸首是它一次要求太多数据点(即大于 2,000,这是当前限制)。数据点计算为number of terms * time * resolution
。因此,当您更改时间范围时,请求的数据点数量会减少,并且调用会成功。
希望这对未来的用户有所帮助!
【讨论】:
以上是关于HttpError 400:访问 Google Extended Trends API for Health 时出现错误请求的主要内容,如果未能解决你的问题,请参考以下文章
错误:(gcloud.sql.connect)HTTPError 400:传入请求包含无效数据
requests.exceptions.HTTPError:400 客户端错误:对 url 的错误请求:https://accounts.spotify.com/api/token
urllib2.HTTPError: HTTP Error 400: Bad Request
源 GraphQL API:HTTP 错误 400 错误请求
HTTPError:HTTP 错误 403:在 Google Colab 上被禁止
来自 Python AppEngine 的 Google Url Shortener API:HTTPError:HTTP 错误 403:禁止