Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sdk Box.com-如何使用服务帐户抓取所有企业用户';盒式文件_Sdk_Box - Fatal编程技术网

Sdk Box.com-如何使用服务帐户抓取所有企业用户';盒式文件

Sdk Box.com-如何使用服务帐户抓取所有企业用户';盒式文件,sdk,box,Sdk,Box,我正在使用Box.com Java SDK 我想在我的Box.com企业中遍历用户,并在每个人的帐户中抓取文档 我已经使用JWT为OAuth2.0设置了身份验证类型。我已启用“作为用户”标题。我已经将“用户访问”更新为“所有用户”,这样我就可以看到所有用户的文件,无论他们是通过网站还是完全在后端 如果我以该用户身份请求/0中的所有文件,它是否会返回系统中所有用户的所有文件 如何开始在每个用户文件中爬行 我试过这个,似乎很管用 public static void main(String[] ar

我正在使用Box.com Java SDK

我想在我的Box.com企业中遍历用户,并在每个人的帐户中抓取文档

我已经使用JWT为OAuth2.0设置了身份验证类型。我已启用“作为用户”标题。我已经将“用户访问”更新为“所有用户”,这样我就可以看到所有用户的文件,无论他们是通过网站还是完全在后端

如果我以该用户身份请求
/0
中的所有文件,它是否会返回系统中所有用户的所有文件


如何开始在每个用户文件中爬行

我试过这个,似乎很管用

public static void main(String[] args) throws IOException {
{
        String privateKey = new String(Files.readAllBytes(Paths.get(PRIVATE_KEY_FILE)));

        JWTEncryptionPreferences encryptionPref = new JWTEncryptionPreferences();
        encryptionPref.setPublicKeyID(PUBLIC_KEY_ID);
        encryptionPref.setPrivateKey(privateKey);
        encryptionPref.setPrivateKeyPassword(PRIVATE_KEY_PASSWORD);
        encryptionPref.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256);

        IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(MAX_CACHE_ENTRIES);

        BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(ENTERPRISE_ID, CLIENT_ID, CLIENT_SECRET, encryptionPref, accessTokenCache);

        Iterable<com.box.sdk.BoxUser.Info> users = BoxUser.getAllEnterpriseUsers(api, "App");
        for (BoxUser.Info user : users) {

            BoxDeveloperEditionAPIConnection userApi = BoxDeveloperEditionAPIConnection.getAppUserConnection(user.getID(), CLIENT_ID, CLIENT_SECRET, encryptionPref, accessTokenCache);
            System.out.println(new BoxUser(userApi, user.getID()).getInfo().getName());

            BoxFolder boxFolder = BoxFolder.getRootFolder(userApi);
            Iterable<com.box.sdk.BoxItem.Info> items = boxFolder.getChildren();
            for (BoxItem.Info item : items) {
                System.out.println("\t" + item.getName());
            }
        }
}
publicstaticvoidmain(字符串[]args)引发IOException{
{
String privateKey=新字符串(Files.readAllBytes(path.get(PRIVATE_KEY_FILE));
JWTEncryptionPreferences encryptionPref=新的JWTEncryptionPreferences();
encryptionPref.setPublicKeyID(公钥ID);
encryptionPref.setPrivateKey(私钥);
encryptionPref.setPrivateKeyPassword(私钥密码);
encryptionPref.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256);
IAccessTokenCache accessTokenCache=新的InMemoryRuAccessTokenCache(最大缓存项);
BoxDeveloperEditionAPIConnection api=BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(企业ID、客户ID、客户机密、加密预处理、accessTokenCache);
Iterable users=BoxUser.getAllEnterprise用户(api,“应用程序”);
用于(BoxUser.Info用户:用户){
BoxDeveloperEditionAPIConnection userApi=BoxDeveloperEditionAPIConnection.getAppUserConnection(user.getID(),CLIENT\u ID,CLIENT\u SECRET,encryptionPref,accessTokenCache);
System.out.println(新的BoxUser(userApi,user.getID()).getInfo().getName());
BoxFolder-BoxFolder=BoxFolder.getRootFolder(userApi);
Iterable items=boxFolder.getChildren();
对于(BoxItem.Info项目:项目){
System.out.println(“\t”+item.getName());
}
}
}

我认为答案是,您需要使用box\u client.users()在用户之间循环,然后使用这些用户和“as user”一个接一个地作为每个用户爬行但这仍然带来了一个问题-如何使企业api能够访问所有不同类型的用户内容?否则,它将返回此错误,无论使用
BoxUser.getAllEnterpriseurs(api,“应用程序”)的企业帐户需要多长时间
10000多个用户?对不起!我不确定,但在一定时间段内,您可以拨打的电话数量也有费率限制。非常有趣的是,您不必使用
作为用户
标题。