启用谷歌组设置的API服务帐户?(Google Group Settings API enabled

2019-11-01 06:41发布

大部分的谷歌管理API似乎对服务帐户已启用。 例如,我可以检索像这样的日历:

string scope = Google.Apis.Calendar.v3.CalendarService.Scopes.Calendar.ToString().ToLower();
string scope_url = "https://www.googleapis.com/auth/" + scope;
string client_id = "999...@developer.gserviceaccount.com";
string key_file = @"\path\to\my-privatekey.p12";
string key_pass = "notasecret";

AuthorizationServerDescription desc = GoogleAuthenticationServer.Description;
X509Certificate2 key = new X509Certificate2(key_file, key_pass, X509KeyStorageFlags.Exportable);

AssertionFlowClient client = new AssertionFlowClient(desc, key) { ServiceAccountId = client_id, Scope = scope_url };
OAuth2Authenticator<AssertionFlowClient> auth = new OAuth2Authenticator<AssertionFlowClient>(client, AssertionFlowClient.GetState);

CalendarService service = new CalendarService(auth);
var x = service.Calendars.Get("calendarID@mydomain.com").Fetch();

然而,在GroupssettingsService相同的代码返回一个503 - 服务器不可用。 这是否意味着服务帐户不能与API使用?

在可能的相关问题,该组设置服务的范围似乎是apps.groups.settings但如果你打电话

GroupssettingsService.Scopes.AppsGroupsSettings.ToString().ToLower();

......你appsgroupssettings代替,而嵌入式时期。

有没有办法使用服务占GroupssettingsService另一种方法? 或者在正确的范围字符串的任何信息?

非常感谢。

Answer 1:

为什么你需要使用一个服务帐户吗? 你可以使用普通的OAuth 2.0授权流程从谷歌Apps的超级管理员用户获取授权令牌和使用:

https://developers.google.com/accounts/docs/OAuth2InstalledApp



文章来源: Google Group Settings API enabled for service accounts?