トピック一覧の取得

ここでは、スコープごとにトピック一覧の取得方法を説明していきます。

アプリケーションスコープのトピック一覧の取得

アプリケーションスコープの全てのトピックを一覧として取得することができます。トピックの件数が 50 件を超える場合は、ページネーションによって複数回にわけて一覧を取得する必要があります。

以下に、アプリケーションスコープに存在するトピックの一覧を取得する例を挙げます。

  • try {
      // Get the first page of the topic list.
      KiiListResult<KiiTopic> result = Kii.listTopics();
      for (KiiTopic topic : result.getResult()) {
        // Do something.
      }
    
      if (result.hasNext()) {
        // Get the next page of the topic list.
        result = Kii.listTopics(result.getPaginationKey());
        for (KiiTopic topic : result.getResult()) {
          // Do something.
        }
      }
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • // Get the first page of the topic list.
    Kii.listTopics(new KiiCallback<KiiListResult<KiiTopic>>() {
      @Override
      public void onComplete(KiiListResult<KiiTopic> result, Exception e) {
        if (e != null) {
          // Handle the error.
          return;
        }
        for (KiiTopic topic : result.getResult()) {
          // Do something.
        }
    
        if (result.hasNext()) {
          // Get the next page of the topic list.
          Kii.listTopics(result.getPaginationKey(), new KiiCallback<KiiListResult<KiiTopic>>() {
            @Override
            public void onComplete(KiiListResult<KiiTopic> result, Exception e) {
              // Do something.
            }
          });
        }
      }
    });

ここでは、以下の処理を実行しています。

  • listTopics メソッドを実行し、トピック一覧を取得します。
  • getResult メソッドを実行し、トピック一覧を List で取得します。
  • hasNext メソッドを実行して取得しきれなかったトピックがあるか確認し、ある場合は getPaginationKey メソッドで取得したキーを引数に、再度 listTopics メソッドを実行します。

グループスコープのトピック一覧の取得

グループスコープの全てのトピックを一覧として取得することができます。トピックの件数が 50 件を超える場合は、ページネーションによって複数回にわけて一覧を取得する必要があります

以下に、グループスコープに存在するトピックの一覧を取得する例を挙げます。

  • try {
      // Instantiate an existing group.
      KiiGroup group = KiiGroup.createByUri(groupUri);
    
      // Get the first page of the topic list.
      KiiListResult<KiiTopic> result = group.listTopics();
      for (KiiTopic topic : result.getResult()) {
        // Do something.
      }
    
      if (result.hasNext()) {
        // Get the next page of the topic list.
        result = group.listTopics(result.getPaginationKey());
        for (KiiTopic topic : result.getResult()) {
          // Do something.
        }
      }
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • // Instantiate an existing group.
    final KiiGroup group = KiiGroup.createByUri(groupUri);
    
    // Get the first page of the topic list.
    group.listTopics(new KiiCallback<KiiListResult<KiiTopic>>() {
      @Override
      public void onComplete(KiiListResult<KiiTopic> result, Exception e) {
        if (e != null) {
          // Handle the error.
          return;
        }
        for (KiiTopic topic : result.getResult()) {
          // Do something.
        }
    
        if (result.hasNext()) {
          // Get the next page of the topic list.
          group.listTopics(result.getPaginationKey(), new KiiCallback<KiiListResult<KiiTopic>>() {
            @Override
            public void onComplete(KiiListResult<KiiTopic> result, Exception e) {
              // Do something.
            }
          });
        }
      }
    });

ここでは、以下の処理を実行しています。

  • listTopics メソッドを実行し、トピック一覧を取得します。
  • getResult メソッドを実行し、トピック一覧を List で取得します。
  • hasNext メソッドを実行して取得しきれなかったトピックがあるか確認し、ある場合は getPaginationKey メソッドで取得したキーを引数に、再度 listTopics メソッドを実行します。

ユーザースコープのトピック一覧の取得

ユーザースコープの全てのトピックを一覧として取得することができます。トピックの件数が 50 件を超える場合は、ページネーションによって複数回にわけて一覧を取得する必要があります

以下に、ユーザースコープに存在するトピックの一覧を取得する例を挙げます。

  • try {
      // Get the currently logged-in user.
      KiiUser user = KiiUser.getCurrentUser();
    
      // Get the first page of the topic list.
      KiiListResult<KiiTopic> result = user.listTopics();
      for (KiiTopic topic : result.getResult()) {
        // Do something.
      }
    
      if (result.hasNext()) {
        // Get the next page of the topic list.
        result = user.listTopics(result.getPaginationKey());
        for (KiiTopic topic : result.getResult()) {
          // Do something.
        }
      }
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • // Get the currently logged-in user.
    final KiiUser user = KiiUser.getCurrentUser();
    
    // Get the first page of the topic list.
    user.listTopics(new KiiCallback<KiiListResult<KiiTopic>>() {
      @Override
      public void onComplete(KiiListResult<KiiTopic> result, Exception e) {
        if (e != null) {
          // Handle the error.
          return;
        }
        for (KiiTopic topic : result.getResult()) {
          // Do something.
        }
    
        if (result.hasNext()) {
          // Get the next page of the topic list.
          user.listTopics(result.getPaginationKey(), new KiiCallback<KiiListResult<KiiTopic>>() {
            @Override
            public void onComplete(KiiListResult<KiiTopic> result, Exception e) {
              // Do something.
            }
          });
        }
      }
    });

ここでは以下の処理を実行しています。

  • listTopics メソッドを実行し、トピック一覧を取得します。
  • getResult メソッドを実行し、トピック一覧を List で取得します。
  • hasNext メソッドを実行して取得しきれなかったトピックがあるか確認し、ある場合は getPaginationKey メソッドで取得したキーを引数に再度、listTopics メソッドを実行します。