【发布时间】:2020-01-31 13:04:54
【问题描述】:
调用 Google Analytics user deletion API 时出现以下错误
错误
HttpError:https://www.googleapis.com/analytics/v3/management/accounts/5795821/entityUserLinks/%27785972698.1540375322%27?返回“权限不足:请求的身份验证范围不足。”>
代码:
import csv
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
def get_service(api_name, api_version, scope, key_file_location):
credentials = ServiceAccountCredentials.from_json_keyfile_name(key_file_location,scope)
#Build the service object.
service = build(api_name, api_version, credentials=credentials)
return service
# open a list of client ids
with open('File_name.csv', 'rt') as csvfile:
reader = csv.reader(csvfile, dialect='excel')
reader_list = list(reader)
def delete_users(service):
for row in reader_list:
for row in reader_list:
service.management().accountUserLinks().delete(
accountId ='XXXXXX',
linkId = row[0]
).execute()
def main():
# Define the auth scopes to request.
scope = ['https://www.googleapis.com/auth/analytics.user.deletion']
key_file_location = 'credentials.json'
# Authenticate and construct service.
service = get_service('analytics', 'v3', scope, key_file_location)
delete_users(service)
if __name__ == '__main__':
main()
我已经从 GCP 控制台 > 服务帐户下载了凭据文件并使用了该文件。无法理解确切的原因是什么以及如何解决它。我在哪里可以查看/定义身份验证范围?任何文档或帮助将不胜感激。
我什至尝试按照this post 发送 ViewId 代替 accountId 但同样的错误。
对同样的谷歌文档真的很失望。
【问题讨论】:
-
您正在从 VM 实例运行此代码?
-
我的本地机器上没有
标签: python api google-cloud-platform google-analytics google-analytics-api