域共享联系人 API 使用 python + 服务帐户(客户端库)创建外部联系人

Domain Shared Contacts API to create external contacts using python + service account (client library)

我想使用 Domain Shared Contacts API 作为 python 客户端库的一部分。

我在其他情况下使用的流程: 创建凭据:

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

'Create' 稍后执行的服务对象

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

在域共享联系人的情况下 API 我不知道 service_name 或 api_version 使用什么 Google API Discovery Service 如果有的话。 是否可以 create/update/remove 使用联系人或人员 API 的域的外部联系人?

如果没有,利用此 API 的过程是在您的代码库 Using OAuth 2.0 for Web Server Applications 中创建对 REST 端点的请求,例如: https://www.google.com/m8/feeds/contacts/example.com/full

我仅通过使用 域共享联系人 API 设法解决了我的问题

  1. 我创建了一个服务帐户。

  2. 使用示例 here 准备了授权 (HTTP/REST) API 调用。特别注意额外声明 sub.

  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)