【发布时间】:2018-01-03 04:18:00
【问题描述】:
我自己调用谷歌 API 而不是使用他们的 python 库,因为我在一个不方便的公司代理后面,它会杀死他们的库,所以我必须自己做这一切。
这很好用:
requests.get('https://www.googleapis.com/webmasters/v3/sites', params =
{'access_token':'my_access_token_here'})
另一方面,这不会:
site = https://www.my_website_from_the_above_function.com
site = urllib.parse.quote_plus(site)
def get_website_info():
url = 'https://www.googleapis.com/webmasters/v3/sites/{}/searchAnalytics/query'.format(site)
params = {
"endDate": "2017-12-10",
"startDate": "2017-12-01",
"access_token": my_access_token
}
r = requests.post(url, params = params)
return r
x = get_website_info().json()
我得到的只是这个错误代码:
{'error': {'code': 500,
'errors': [{'domain': 'global',
'message': 'Backend Error',
'reason': 'backendError'}],
'message': 'Backend Error'}}
即使使用推荐的“指数退避”
使用googles API explorer 似乎可以正常工作:
另外:这似乎也给出了类似的错误:
r = requests.post(url, params = auth_params, data = json.dumps(params))
最后:
r = requests.post(url, params = auth_params, data = params)
只是给
{'error': {'code': 400,
'errors': [{'domain': 'global',
'message': 'This API does not support parsing form-encoded input.',
'reason': 'parseError'}],
'message': 'This API does not support parsing form-encoded input.'}}
【问题讨论】:
-
对于您的
500错误...不知道,真的...对于第二个,看起来(也许)您必须指定Content-Type请求的标头是@ 987654333@?检查另一个问题:stackoverflow.com/q/9733638/289011 -
知道你让我走上正轨!我必须传入,
headers = {'Content-type': 'application/json', 'Authorization' : 'Bearer %s' % access_token}和 json.dumps(data)
标签: python api google-search-console