最近我一直在使用Google Cloud API进行一些数据分析项目。目前,我一直遵循其他网站的指示,并在此基础上制作自己的数据集。然而,我不断遇到谷歌云API的错误。
例如,我正在尝试以下文章中的方法:https://practicaldatascience.co.uk/data-science/how-to-query-the-google-search-console-api-with-ecommercetools
然而,Python的回应是:
错误:服务帐户信息不是预期的格式,缺少字段token_uri、client_email。
我在文章中提到的"OAuth 2.0客户端ID"下创建了基本凭据。
这是我目前拥有的代码:
import pandas as pd
from ecommercetools import seo
from oauth2client.service_account import ServiceAccountCredentials
pd.set_option('max_colwidth', 100)
key = "G:Python Projectsquery_gsc_secrets.json"
site_url = "https://startselect.com/"
start_date = "2019-01-01"
end_date = "2020-12-31"
print(key)
payload = {
'startDate': start_date,
'endDate': end_date,
'dimensions': ["page"],
'rowLimit': 10000,
'startRow': 0
}
df = seo.query_google_search_console(key, site_url, payload)
df.sort_values(by='clicks', ascending=False).head()
我之所以问这个问题,是因为这个错误似乎以某种形式反复出现。创建凭据时是否遗漏了什么?代码中有错误吗?
提前感谢!
键的格式似乎与预期不一样。
您已经提到您在";OAuth 2.0客户端ID";但是,如果您通读链接的文章,您可以看到API需要一个服务帐户密钥。
服务帐户密钥格式如下:
{
"type": "service_account",
"project_id": "project-id",
"private_key_id": "key-id",
"private_key": "-----BEGIN PRIVATE KEY-----nprivate-keyn-----END PRIVATE KEY-----n",
"client_email": "service-account-email",
"client_id": "client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url":
"https://www.googleapis.com/robot/v1/metadata/x509/service-account-email"
}
与错误中请求的格式匹配missing fields token_uri, client_email.
在本GCP文档中,您可以阅读如何创建服务帐户和服务帐户密钥