ページネーション
ページネーションとは、大量のデータを複数のページに分割して取得ができる仕組みです。
SaaSごとにページングのサイズが異なったり、ページネーションの設定方法が異なります。 そのため、各SaaSのAPIドキュメントを確認しながらページネーションを構築してください。
今回はSlackBotでユーザー一覧を取得する際にページネーションで取得する方法をご紹介します。200件ずつAPIでユーザーを取得し、1つのデータに格納していく使い方をご紹介します。
SlackのAPIドキュメント
詳細は下記を参照してください。 https://docs.slack.dev/reference/methods/users.list/
今回作成するページネーションの流れは下記の通りです。

ソリューションの詳細な作り方は下記をご確認ください。
変数を作成する
変数アクションを追加します。
[Formulaで変数を作成]を選択します。
変数定義:手動追加します。追加する定義は下記の通りです。
名前[next cursor]、型[String]で、追加します。
変数のオブジェクト:入力をFormulaに変更し、[None]と入力します。

もう1つ変数アクションを追加します。
[Formulaで変数を作成]を選択します。
変数定義:JSONまたは手動で追加できます。
JSONを入力するモーダルが表示されるので、以下のJSONをコピーして貼り付けます。
手動追加追加する定義は下記の通りです。
名前[user_list]、型[Array]で、任意項目にするにチェックを入れて追加します。
名前[user]、型[Object]で、任意項目にするにチェックを入れて追加します。
userをuser_listの配下に設定します。
変数のオブジェクト:入力をFormulaに変更し、[]と入力します。

変数を作成できたら、[ユーザー一覧を取得]のステップを修正します。
取得件数:200と入力します。
カーソル:変数の[next cursor]に変更します。

リストを作成する
次にリストを作成します。
リストのアクションを追加します。
リストを作成を選択します。
サイズ:任意のサイズを設定します。今回は[1000]とします。

繰り返しを設定する
次に繰り返しを設定します。繰り返しアクションを設定しないとリストを受け取ることができません。
[+]ボタンをクリックし、[繰り返し]ステップを選択します。
繰り返すリスト:変数の[リスト]を選択します。
繰り返しモード:[アイテムごとに繰り返す]を選択します。

繰り返しにユーザー一覧取得を配置する
繰り返しステップの中にユーザー一覧を取得のステップを移動させます。
次に繰り返しユーザー一覧を取得するために変数の更新を2つ設定します。
1つ目の変数の更新
ステップを追加しアクションから変数を選択します。
変数を更新を選択します。
変数選択:[next cursor]を選択します。
オブジェクト:変数の[NextCursor]を選択します。

2つ目の変数の更新
ステップを追加しアクションから変数を選択します。
変数を更新を選択します。
変数選択:変数の[user_list]を選択します。
オブジェクト:変数を使用します。入力をFormulaに変更し、下記のように入力します。

取得するページがなくなったら終了するステップを追加する
リストで設定したページよりも件数が少なかった場合に、取得を終了するステップを追加します。
ステップで[if]を選択します。
データ:変数にある[NextCursor]を選択し、状態は[空である]を選択します。
次のYes側にBreakのステップを追加します。

レスポンスの設定を修正する
リストでユーザー一覧を取得した場合、レスポンスペイロードが変わるため、設定を修正します。
レスポンス名を[user_list]に変更します。
リストソース:変数の[user_list]を選択します。
id:変数を使用します。入力をFormulaに変更し、下記のように入力します。

以上で設定は終了です。テストして成功するか確認してください。
この設定により、ページネーションによりデータを取得することができました。
最終更新