2017-01-31 142 views
0

Box.com Java SDKを使用しています。Box.com - サービスアカウントを使用してすべてのエンタープライズユーザーのボックスファイルをクロールする方法

私はBox.comエンタープライズ内のユーザーをループし、各人物のアカウントのドキュメントをクロールしたいと考えています。

私はJWTでOAuth2.0に設定された認証タイプを設定しました。 "As-User"ヘッダーを有効にしました。 「ユーザーアクセス」を「すべてのユーザー」に更新して、https://box.com Webサイトを経由しているのか、完全にバックエンドにあるのかをすべてのユーザーファイルで確認できます。

/0のすべてのファイルをこのユーザーとして要求すると、システム上のすべてのユーザーのすべてのファイルが返されますか?

各ユーザーファイルを使用してクロールを開始するにはどうすればよいですか?

+0

を私はこれを試してみました、動作しているようですこれらのユーザーと「As-User」ヘッダーを使用します。 –

+0

しかし、それでも、エンタープライズAPIがあらゆる種類のユーザーのコンテンツにアクセスできるようにするにはどうすればよいのでしょうか?それ以外の場合は、このエラーが返されます。http://stackoverflow.com/questions/33683246/box-api-token-request-enterprise-configuration-issue –

答えて

1

私はこの答えは、あなたが(box_client.usersを使用してユーザをループに必要だと思います)、その後、あなたは1で、各ユーザーとしてクロール...

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()); 
      } 
     } 
} 
+0

BoxUser.getAllEnterpriseUsers(api 、 "App"); 10,000人以上のユーザー? –

+0

申し訳ありません!私には分かりませんが、特定の期間に何通の通話ができるかという料金制限もあります。 – kendomen

+0

これは 'As-User'ヘッダーを使用する必要がなかったことは非常に興味深いです。 –

関連する問題