Google管理员目录用户错误

Dav*_*ton 7 c# directory google-api google-apps google-admin-sdk

使用Google API .NET Client v1.3.0-beta.

我创建了一个控制台应用程序,用于从服务帐户的示例代码中测试Google Admin Directory的基础知识.这应该给我一个域中所有电子邮件地址的计数.

using System;
using System.Collections.Generic;        
using DotNetOpenAuth.OAuth2;        
using Google.Apis.Admin.directory_v1;
using Google.Apis.Admin.directory_v1.Data;
using System.Security.Cryptography.X509Certificates;
using Google.Apis.Authentication.OAuth2;
using Google.Apis.Authentication.OAuth2.DotNetOpenAuth;
using Google.Apis.Services;
using Google.Apis.Util;

namespace ConsoleApplication1
{
    class Program
    {
        private const string SERVICE_ACCOUNT_EMAIL = "012345678901@developer.gserviceaccount.com";
        private const string SERVICE_ACCOUNT_ID = "012345678901.apps.googleusercontent.com";
        private const string SERVICE_ACCOUNT_PKCS12_FILE_PATH = @"C:\ConsoleApplication1\randomlyassigned-privatekey.p12";    

        static void Main(string[] args)
        {
            X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, "notasecret", X509KeyStorageFlags.Exportable);
            var provider = new AssertionFlowClient(GoogleAuthenticationServer.Description, certificate)
            {
                ServiceAccountId = SERVICE_ACCOUNT_EMAIL,
                Scope = AdminService.Scopes.AdminDirectoryUser.GetStringValue()
            };

            var auth = new OAuth2Authenticator<AssertionFlowClient>(provider, AssertionFlowClient.GetState);
            var service = new AdminService(new BaseClientService.Initializer()
                {
                    Authenticator = auth
                });

            UsersResource.ListRequest listReq = service.Users.List();
            Users us = listReq.Fetch();
            Console.WriteLine(us.UsersValue.Count);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试获取()用户列表时出现以下错误:

Google.Apis.Requests.RequestError
Bad Request [400]
Errors [
    Message[Bad Request] Location[ - ] Reason[badRequest] Domain[global]
]
Run Code Online (Sandbox Code Playgroud)

知道我在这里做错了什么吗?

JoB*_*oBe 4

我得到了一些帮助来解决这个问题。要列出用户,您必须传递域或客户作为列表请求的参数。使用客户或域。

@peleyal 帮助我找到了如何做到这一点:

var listReq = service.Users.List();
listReq.Customer = "CUSTOMER_HERE";
listReq.Domain = "DOMAIN_HERE";
Users results = listReq.Execute(); 
Run Code Online (Sandbox Code Playgroud)