API общих контактов домена для создания внешних контактов с использованием python учетная запись службы (клиентская библиотека)

#google-api #google-contacts-api #google-people-api #google-shared-contacts

Вопрос:

Я хочу использовать API общих контактов домена как часть клиентской библиотеки python.

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

 credentials = service_account.Credentials.from_service_account_info(....)
 

«Создать» объект службы, который я выполняю позже

 service = googleapiclient.discovery.build(service_name, api_version,credentials=credentials)
 

В случае API общих контактов домена я не знаю, какой service_name или api_version использовать службу обнаружения Google API, если таковая имеется.
Можно ли создавать / обновлять / удалять внешние контакты для домена с помощью API контактов ИЛИ людей?

Если нет, процесс использования этого API заключается в создании запросов в вашей кодовой базе с использованием OAuth 2.0 для приложений веб-сервера к конечным точкам REST, таким как: https://www.google.com/m8/feeds/contacts/example.com/full

Ответ №1:

Мне удалось решить мою проблему только с помощью API общих контактов домена

  1. Я создал учетную запись службы.
  2. Подготовил авторизованный вызов API (HTTP / REST), используя приведенный здесь пример. Особое внимание дополнительным заявлениям .


  3. Поскольку я использую Python, я установил pyjwt и использовал его для создания и подписания моего JWT. В качестве секрета я использовал service_account.private_key:
     jwt.encode(jwt_claim_set, secret, algorithm="RS256")
     

Затем в зависимости от варианта использования (получить контакты, создать один ..). Я назначил токен Google (подписанный JWT) моему запросу.

Пример:

 endpoint = 'https://www.google.com/m8/feeds/contacts/{}/{}'.format(your_own_domain, projection_value)
headers = {"Authorization": "Bearer "   token}
gsuite_get_response = requests.get(endpoint, headers=headers)
 

Комментарии:

1. Кому-нибудь будет интересно иметь python. библиотека для этого?