大部分的谷歌管理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另一种方法? 或者在正确的范围字符串的任何信息?
非常感谢。