Как исправить ошибку 403: недостаточно областей проверки подлинности из API удаления пользователей Google Analytics - PullRequest
0 голосов
/ 31 января 2020

Получение приведенной ниже ошибки при вызове Google Analytics 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> Учетные записи служб и используя то же самое. Не в состоянии понять, что именно является причиной и как ее устранить. Где я могу увидеть / определить области аутентификации? Буду признателен за любую документацию или помощь.

Я даже пытался отправить ViewId вместо accountId согласно этому сообщению , но с той же ошибкой.

Действительно разочарован документацией Google за то же самое.

Ответы [ 3 ]

1 голос
/ 31 января 2020

Недостаточно прав: у запроса недостаточно областей проверки подлинности.

В точности означает, что у пользователя нет прав на выполнение того, что вы пытаетесь сделать.

Go на веб-сайте Google Analytics найдите учетную запись, в которой находится представление, которое вы хотите удалить. Добавьте учетную запись службы в качестве пользователя на уровне учетной записи.

После этого он получит доступ к учетной записи.

0 голосов
/ 05 февраля 2020

Вы звоните Ссылки пользователя учетной записи: delete

Вам необходимо использовать область действия "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()

Быстрое примечание, что этот метод принимает идентификатор пользователя и идентификатор свойства или идентификатор проекта и Идентификатор пользователя.

0 голосов
/ 04 февраля 2020

Ошибка указывает на то, что у вас есть учетные данные учетной записи службы, которые не имеют правильного разрешения на выполнение операции удаления. Эта статья содержит подробные инструкции по созданию и применению разрешений для учетной записи службы со снимком экрана. Кроме того, в нем описано, как включить API Google Analytics для проекта, в котором находится ваша служебная учетная запись.

...