這對所有企業用戶都適用,但是您可以輕鬆放置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的。 2.現在,上面的代碼行返回給我這個: 「type」:「error」,「status」:403,「code」:「access_denied_insufficient_permissions」 – RajN