谷歌Dotnet API -管理SDK组-得到坏的请求错误
本文关键字:请求 错误 Dotnet API 管理 SDK 谷歌 | 更新日期: 2023-09-27 18:10:10
只是尝试阅读Google Dotnet API管理SDK工作。
当我试图检索所有组的列表时,我有一些错误。我仍然对文档感到困惑(使用哪些方法或函数等)。
我现在拥有的代码:
using System;
using System.IO;
using System.Threading;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using Google.Apis.Admin.Directory.directory_v1;
using Google.Apis.Admin.Directory.directory_v1.Data;
namespace GoogleConsoleApp
{
class Program
{
static void Main(string[] args)
{
UserCredential credential;
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { DirectoryService.Scope.AdminDirectoryGroup, DirectoryService.Scope.AdminDirectoryGroupReadonly },
"user", CancellationToken.None, new FileDataStore("Tasks.Auth.Store")).Result;
}
var dirSvc = new DirectoryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Groups API Sample",
});
Groups myGroups = dirSvc.Groups.List().Execute();
几乎错误地说:
Unhandled Exception: Google.GoogleApiException: Google.Apis.Requests.RequestError
Bad Request [400]
Errors: [Message [Bad Request] Location [ - ] Reason[badRequest] Domain[global]]
我已经在开发者控制台中启用了必要的api。
如有任何帮助,我将不胜感激。
更新:我也尝试了这个方法(按照文档):
Google.Apis.Admin.Directory.directory_v1.GroupsResource.ListRequest lreq = new GroupsResource.ListRequest(dirSvc);
Groups grp2 = lreq.Execute();
但是我仍然得到相同的错误
您需要显式地设置请求的域。如果您像其他类型的请求一样将域留空,则假设它只会搜索全局域,这是错误的。在本例中,它尝试搜索客户的组,这也是空白的。来自api规范的注释
检索时:
- 子域的所有组-使用带域名的domain参数
- 帐户的所有组-使用带有my_customer或帐户的customerId值的customer参数。作为一个帐户管理员,使用字符串my_customer来表示您的帐户customerId。如果你是一个经销商访问转售客户的帐户,使用转售帐户的customerId。获取customerId值在检索a中的所有用户中使用帐户的主域名域操作的请求。得到的响应具有customerId价值。
- 同时使用域和客户参数- API返回该域的所有组。
- 不使用domain和customer参数- API返回与my_customer关联的帐户的所有组。这是
示例:
GroupsResource.ListRequest groupRequest = _service.Groups.List();
groupRequest.Domain = "YourDomain";
Groups domainGroups = groupRequest.Execute();
不工作的例子,将抛出完全相同的错误:
GroupsResource.ListRequest groupRequest = _service.Groups.List();
Groups domainGroups = groupRequest.Execute();