【问题标题】:app.box .NET SDK returning empty collection of itemsapp.box .NET SDK 返回空的项目集合
【发布时间】:2020-02-11 10:42:58
【问题描述】:

我已按照 .NET SDK 文档中针对 JWT 身份验证的应用程序的步骤进行操作,但在 GetFolderItemsAsync 方法上不断获取空项目集合。

我已经为它配置了企业应用程序访问权限并授权它...

身份验证似乎没问题,因为我在创建 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 });

【问题讨论】:

    标签: .net sdk jwt-auth


    【解决方案1】:

    我自己想出来的。

    以防万一有人遇到同样的问题。我试图使用自动生成的管理客户端访问文件夹。显然这种类型的客户端没有获取文件夹列表的权限。

    您必须获取企业用户并使用用户 ID 实例化用户客户端对象。

    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 });
    

    【讨论】:

    • 谢谢你——我正为此而烦恼!
    猜你喜欢
    • 2014-06-08
    • 2016-03-29
    • 2010-09-25
    • 2016-07-23
    • 2018-10-02
    • 2015-03-25
    • 2010-12-24
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多