Недостаточно прав доступа для создания группы Gmail с помощью Google Directory API - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу создать группу, которая будет содержать несколько писем / писем.Я использую это руководство .Это мой код для создания групп:

SCOPES = 'https://www.googleapis.com/auth/admin.directory.group'
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid {
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
}
service = build('admin', 'directory_v1', http=creds.authorize(Http()))

mdig = createetag();

reqbody = {
    "kind": "admin#directory#group",
    "id": "id065468",
    "etag": "%s" % mdig,
    "email": "grpatest065469@gmail.com",
    "name": "Grptest name",
    "directMembersCount": "2",
    "description": "Grptest",
    "adminCreated": "True",
    "aliases": [
        "first@gmail.com",
        "second@gmail.com"
    ],
    "nonEditableAliases": [
    ]
}

# Call the Admin SDK Directory API
print('Creating new group')
group = service.groups()
g = group.insert(body=reqbody).execute()

Я не получил окно аутентификации в своем браузере, не уверен, что это вызывает проблему.Это моя ошибка:

'kind': 'admin#directory#group', 'id': 'id065468', 'etag': "b'\\x9fR\\xe9O\\x93\\x84\\xbe~\\x19\\xef\\xd2DYJ`\\x1d'", 'email': 'grptest065469@gmail.com', 'name': 'Grptest name', 'directMembersCount': '2', 'description': 'Grp test', 'adminCreated': 'True', 'aliases': ['first@gmail.com', 'second@gmail.com'],'nonEditableAliases': []

Creating new group

Traceback (most recent call last):
File ".\creategrp.py", line 105, in <module> main()
File".\creategrp.py", line 75, in main 
    g = group.insert(body=reqbody).execute()
File "C:\dev\cfehome\lib\googleapiclient\_helpers.py", line 130, in positional_wrapper
    return wrapped(*args, **kwargs)
File "C:\dev\cfehome\lib\googleapiclient\http.py", line 849, in execute 
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/admin/directory/v1/groups?alt=json returned "Insufficient Permission">

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Группы: вставка требует https://www.googleapis.com/auth/admin.directory.group область видимости, чтобы использовать его.Кроме того, пользователь, с которым вы прошли аутентификацию, должен иметь доступ к тому, что вы пытаетесь сделать.Ваш код, похоже, использует правильную область.

«Недостаточное разрешение»

Может означать одно из двух.Либо

  • пользователь, которого вы аутентифицируете, не имеет доступа к тому, что вы пытаетесь сделать
  • вы изменили область действия с момента входа пользователя.

вариант один:

Убедитесь, что пользователь, с которым вы входите в систему, имеет доступ администратора на учетной записи gsuite.или вы можете проверить учетные записи служб ниже.

Вариант второй:

Я не разработчик Python, но я знаю о библиотеке, которую вы используете.Когда пользователь входит в учетный файл для пользователя в каталоге, обозначенном stored store = file.Storage('token.json').Делая это, когда пользователь возвращается снова, вам не нужно просить их войти снова.Если вы изменили область действия, вам нужно найти этот файл и удалить его.Он должен появиться и снова попросить вас дать согласие.

Сервисная учетная запись

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

Google ApiДокументация по клиенту Python -> Использование OAuth 2.0 для серверных приложений

0 голосов
/ 12 декабря 2018

У учетных данных, которые вы используете, нет разрешения.Это вызвано одним или несколькими факторами, связанными с олицетворением учетных данных учетной записи службы и / или учетной записи службы (отсутствие).

  1. Вам необходимо создать учетную запись службы.Не изменяйте и не изменяйте какие-либо разрешения.
  2. Вам необходимо делегировать полномочия для всего домена учетной записи службы.
  3. Используя учетные данные учетной записи службы, вы выдаете себя за другого пользователя, который имеет привилегию домена superadmin и который имеетВы хотя бы один раз вошли в G Suite и приняли условия и положения.

Начните с этого документа при делегировании домена G Suite:

Выполните делегирование G Suite по всему доменувласти

...