我想向Google Analytics提出服务器到服务器请求。我使用的是Python,webapp2,App Engine。因为我使用App Engine,我已经有了服务帐户,并且我下载了它的API密钥:
{
"type": "secret",
"project_id": "secret",
"private_key_id": "secret",
"private_key": "secret",
"client_email": "secret",
"client_id": "secret",
"auth_uri": "secret",
"token_uri": "secret",
"auth_provider_x509_cert_url": "secret",
"client_x509_cert_url": "secret"
}
我跟随this tutorial,但get_access_token()
会引发错误。在调试库时,我发现代码需要json字段
json_data['_service_account_email'],
scopes=json_data['_scopes'],
private_key_id=json_data['_private_key_id'],
client_id=json_data['client_id'],
user_agent=json_data['_user_agent'],
我做错了什么?我使用了google_api_python_client附带的oauth2client。
答案 0 :(得分:1)
听起来您正在使用ServiceAccountCredentials.from_json()
加载密钥文件。
但是,此构造函数用于序列化ServiceAccountCredentials
实例,而不是用于从云控制台下载的密钥文件。
请尝试使用ServiceAccountCredentials.from_json_keyfile_name()
。