通过服务帐户查询 Google 域共享联系人 API

Querying the Google Domain Shared Contacts API via service account

我正在用 C# 编写一个应用程序,旨在查询 Google 域共享联系人 API 以检索(并最终 update/add/delete)所有域共享联系人记录。由于 .NET 客户端库目前不支持此功能,因此我编写了一个程序来检索 oauth 2.0 令牌以包含在我对 https://www.google.com/m8/feeds/contacts/example.com/full 的请求中。我相信我的 oauth 2.0 令牌请求过程是正确的,但是在使用该令牌调用上述 URL 时出现 403 Forbidden 错误。但是,如果我进入 OAuth 2.0 游乐场并通过那里创建一个令牌并在我的 C# 应用程序中使用该令牌,则调用会成功并且我会返回联系人记录。

我的问题是 - 域共享联系人 API 是否支持使用服务帐户的凭据进行调用?

此问题的解决方案是将 "overarching" 域管理员帐户的电子邮件地址作为被管理的用户(创建 Jason Web 令牌时声明集的 'sub' 属性 或'User' 属性 ServiceAccountCredential 初始化)。由于域管理员可以访问所有域数据,因此检索所有域共享联系人的调用现在成功了。