app.box. NET SDK возвращает пустую коллекцию элементов - PullRequest
0 голосов
/ 11 февраля 2020

Я выполнил следующие шаги. NET Документирование SDK для приложения, прошедшего аутентификацию JWT, но продолжаю получать пустую коллекцию элементов по методу GetFolderItemsAsyn c.

Я настроил его для доступа к корпоративным приложениям и авторизовал его ...

Аутентификация выглядит нормально, потому что я не получаю исключения при создании объекта BoxJWTAuth.

        var reader = new StreamReader(@"PathToJSONConfigFile");
        var json = reader
            .ReadToEnd();
        var config = BoxConfig
            .CreateFromJsonString(json);
        var sdk = new BoxJWTAuth(config);
        var token = sdk
            .AdminToken();

        var adminClient = sdk
            .AdminClient(token);

        var folders = await adminClient
            .FoldersManager
            .GetFolderItemsAsync("0", 500, fields: new string[] { BoxCollection.FieldEntries });

1 Ответ

0 голосов
/ 14 февраля 2020

Разобрался сам.

На всякий случай, если кто-то столкнется с той же проблемой. Я пытался получить доступ к папкам с помощью автоматически сгенерированного клиента администратора. Очевидно, что у этого типа клиента нет полномочий для получения списков папок.

Вы должны получить корпоративных пользователей и создать экземпляр пользовательского объекта клиента с идентификатором пользователя.

var boxUsers = await adminClient.UsersManager.GetEnterpriseUsersAsync();
        var user= boxUsers
            .Entries
            .FirstOrDefault(x => x.Login.Contains("user"));

        var cli = new BoxClient(config, auth, asUser: user.Id);
        try
        {
            var fold = await cli
            .FoldersManager
            .GetFolderItemsAsync("0", 500, fields: new string[] { BoxCollection.FieldEntries, BoxItem.FieldName, BoxItem.FieldSharedLink, BoxItem.FieldPathCollection });
...