これはすべてのエンタープライズユーザーに適用されますが、簡単にifステートメントを使用して、探しているユーザーを取得することができます。
static async Task MainAsync()
{
// rename the private_key.pem.example to private_key.pem and put your JWT private key in the file
var privateKey = File.ReadAllText(PRIVATE_KEY_FILE);
var boxConfig = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, privateKey, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
var boxJWT = new BoxJWTAuth(boxConfig);
var adminToken = boxJWT.AdminToken();
Console.WriteLine("Admin Token: " + adminToken);
Console.WriteLine();
var adminClient = boxJWT.AdminClient(adminToken); // adminClient == serviceAccount
var userDetails = await adminClient.UsersManager.GetCurrentUserInformationAsync();
Console.WriteLine("\tAdmin User Details:");
Console.WriteLine("\tId: {0}", userDetails.Id);
Console.WriteLine("\tName: {0}", userDetails.Name);
Console.WriteLine("\tStatus: {0}", userDetails.Status);
Console.WriteLine();
var users = await adminClient.UsersManager.GetEnterpriseUsersAsync();
users.Entries.ForEach(i =>
{
Console.WriteLine("\t{0}", i.Name);
Console.WriteLine("\t{0}", i.Status);
if (i.Status == "active")
{
var userToken = boxJWT.UserToken(i.Id);
var userClient = boxJWT.UserClient(userToken, i.Id);
Task u = getUserItems(userClient, i.Id);
u.Wait();
}
});
}
static async Task getUserItems(BoxClient userClient, string id)
{
var userDetails = await userClient.UsersManager.GetCurrentUserInformationAsync();
Console.WriteLine("\nManaged User Details:");
Console.WriteLine("\tId: {0}", userDetails.Id);
Console.WriteLine("\tName: {0}", userDetails.Name);
Console.WriteLine("\tStatus: {0}", userDetails.Status);
Console.WriteLine();
Console.WriteLine("managed users older items");
var items = await userClient.FoldersManager.GetFolderItemsAsync("0", 500);
items.Entries.ForEach(i =>
{
Console.WriteLine("\t{0}", i.Name);
});
Console.WriteLine();
}
私たちのアプリはサービスとして動作し、他の(box.com)ユーザーはそれを使用するので、私たちのアプリはそのユーザーを偽装してファイル/フォルダを表示する必要があります。 上記のコードロジックに従って、ServiceAccountの方法でこれを実現します。 – RajN
私のコードは次のようになっています: 'code'var adminClient = boxJWT.AdminClient(adminToken、asUser:USER_ID); var items = await adminClient.FoldersManager.GetFolderItemsAsync( "0"、500); //許可例外「コード」をスローします 1.私はUserIDが何であるべきかわからず、User-2のアカウントからそれを見つけましたか?待っているうちに、User-2のアプリケーションIDを使用しようとしました。これは、IDに最も近いIDであるためです。 2.今、上記のコード行が返されます: "type": "error"、 "status":403、 "code": "access_denied_insufficient_permissions" – RajN