Не удается создать псевдонимы при использовании API каталогов Google

Код, который я имею, показан ниже. Моя проблема в том, что когда я пытаюсь обновить поле 'aliases', этого не произойдет. Что не так с моей реализацией?

store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('admin', 'directory_v1', http=creds.authorize(Http()))

body = { "name":{"familyName": "Aaab", "givenName": "Aaab"}, "password": "test@test", "primaryEmail": "testAAb@aaaa.no", "secondaryEmail": "test@gmail.com", 'aliases': ['testLeader@test.com']}
user_add = service.users().insert(body=body).execute()

Пользователь, который создан с его полями:

    {'kind': 'admin#directory#user', 'id': '106377021897584806221', 'etag': '"TN30oD80QTVK45AAxvl_wbzs4vs/4WNsaqcVI4y7ARsciDEXH7K8Hh4"', 'primaryEmail': 'testaab@test.no', 'name': {'givenName': 'Aaab', 'familyName': 'Aaab', 'fullName': 'Aaab Aaab'}, 'isAdmin': False, 'isDelegatedAdmin': False, 'lastLoginTime': '1970-01-01T00:00:00.000Z', 'creationTime': '2018-10-24T16:43:27.000Z', 'agreedToTerms': True, 'suspended': False, 'archived': False, 'changePasswordAtNextLogin': False, 'ipWhitelisted': False, 'emails': [{'address': 'testaab@test.no', 'primary': True}], 'customerId': 'C02dcimb3', 'orgUnitPath': '/', 'isMailboxSetup': True, 'isEnrolledIn2Sv': False, 'isEnforcedIn2Sv': False, 'includeInGlobalAddressList': True}

1 ответ

Решение

Кажется, проблема в том, что вы не можете указать псевдоним для пользователя при создании его в API-интерфейсе Google. В списке документации здесь нет поля для aliases,

Чтобы добавить псевдоним для пользователя, кажется, для этого используется другой вызов API. Вы должны вручную вставить каждый псевдоним, который вы хотите, используя alias.insert Вызов API, как указано здесь. Кажется, все, что вам нужно, это уникальный userKey как поле для передачи вместе с псевдонимом для пользователя.

Точная документация Python для этого вызова API приведена здесь.

Пример кода с использованием этой функции:

body = {"alias": "testLeader@test.com"}
service.users().aliases().insert(userKey=key, body=body).execute()
Другие вопросы по тегам