当前位置: 首页 > 知识库问答 >
问题:

如何修复来自Google Analytics用户删除API的403:Insulfiguration authentication scopes错误

微生曾琪
2023-03-14

调用Google Analytics用户删除API时出现以下错误

错误

null

代码:

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控制台下载了凭据文件&>;服务帐户并使用该帐户。不知道确切的原因是什么,也不知道如何解决。在哪里可以查看/定义身份验证范围?如有任何文件或帮助,将不胜感激。

我甚至试着发送ViewId到accountId的位置,根据这篇文章,但同样的错误。

对谷歌的文档表示失望。

共有3个答案

仉嘉泽
2023-03-14

您正在呼叫帐户用户链接:删除

您需要使用“https://www.googleapis.com/auth/analytics.manage.users”作用域(如果这是您要调用的)。

请参阅删除帐户用户链接的文档:https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtreference/management/accountuserlinks/delete.auth

其中包含作用域代码的行应为:

scope = ['https://www.googleapis.com/auth/analytics.manage.users']

如果您希望使用用户删除API,则使用了正确的作用域,但是您应该调用:

service.userDeletion().userDeletionRequest().upsert(...).execute()

快速注意,this方法接受用户ID和属性ID或项目ID和用户ID。

饶德元
2023-03-14

错误提示您拥有的服务帐户凭据没有执行删除操作的正确权限。本文通过屏幕截图详细介绍了创建和应用服务帐户权限的步骤。此外,它还描述了如何为您的服务帐户所在的项目启用Google Analytics API。

广晔
2023-03-14

权限不足:请求的身份验证范围不足。

表示用户没有执行您尝试执行的操作的权限。

转到google analytics网站,找到您要删除的视图所在的帐户。将服务帐户添加为帐户级别的用户

然后它就可以访问该帐户。

 类似资料:
  • 当我在主机服务器的浏览器上运行这个应用程序时,我成功地获得了一个json对象(它不是我期望的json,但这是另一个问题)。但是,当我试图访问远程客户端上的站点时,我会得到一个403错误,指向我试图检索响应时的位置。有什么想法吗?

  • 下面的代码旨在用给定的分区键和ROWKEY从表中删除一行。但我在Fiddler中得到以下请求/响应。我怎样才能纠正错误? DELETE https://hireazureStorageAcct.table.core.windows.net/mytable(PartitionKey='sample1',%20rowkey='0001')?timeout=20 http/1.1接受:Applicati

  • 如何修复此错误? Traceback(最近一次调用):文件"C:/用户/HP/下载/cv_api/cv_api/manage.py",第10行,execute_from_command_line(sys.argv) 文件“F:\ anaconda 2 installation \ lib \ site-packages \ django-1 . 10 . 5-py 2.7 . egg \ djan

  • 我想使用Teams graph api检索一个团队(组)的所有通道。 我在“https://graph.microsoft.com/v1.0/teams/{GroupId}/channels”上使用“获取”请求 他拥有“安全管理员”的角色。 我通过get请求“https://graph.microsoft.com/v1.0/me/memberOf”检索团队,这工作很好。 在“https://gra

  • 如何恢复连接?希望不完全重新安装我的postgres?? 非常感谢:)

  • 我正在创建一个脚本,基于Google Analytics的一步一步指南,从这个页面: https://developers.google.com/analytics/resources/tutorials/hello-analytics-api 授权是没有问题的,直到它试图访问数据。返回代码为403,错误消息为: 用户没有任何Google Analytics帐户 这条消息毫无意义:我的帐户有谷歌分