Google ドライブ パッケージから [ファイル/フォルダーを検索] アクションを使用する例

Google ドライブでファイルを検索し、指定されたパスからファイルが見つからない場合はファイルを作成する Bot をビルドします。

前提条件

  • Google Cloud Platform で OAuth2 アプリケーションを設定します。詳細については、「Google Cloud Platform で OAuth2 を設定する」を参照してください。
  • この BotControl Room OAuth 接続方法を使用します。Control Room で OAuth 接続を構成します。詳細については、「Control Room で OAuth 2.0 接続を構成します」を参照してください。
  • 何らかのサンプルデータを含む CSV ファイル。CSV ファイルをお持ちでない場合は、このファイルをダウンロードしてください。

Google ドライブに Google シートが存在しない場合は、Google シートを作成するとします。Google ドライブ パッケージから [Google ドライブ] > [ファイル/フォルダーを検索] アクションを使用して、ファイルがすでに Google ドライブに存在するかどうかを確認できます。ファイルがない場合は、Google シート パッケージから、[ブックを作成] アクションを使用して、ファイルを作成できます。

この Bot は Google ドライブから Google シートを確認します。指定されたパスに存在しない場合、Bot は Google シートを作成し、CSV ファイルからデータをコピーします。

手順

  1. 新しい Bot を作成します。
    1. 左側のペインで [オートメーション] をクリックします。
    2. [新規作成] > [タスク Bot] をクリックします。
    3. [タスク Bot を作成] ウィンドウで、Bot の名前を入力します。
    4. 次のデフォルトのフォルダーの場所をそのまま使用します。\Bots\
    5. デフォルトのBotの保存場所を変更するには、[選択] をクリックしてプロンプトに従います。
    6. [作成と編集] をクリックします。
  2. Google シートにコピーしたいデータを含む CSV ファイルを開きます。
    1. [アクション] パネルから、[CSV/TXT] > [開く] アクションを見つけて Bot エディターに追加します。
    2. [セッション名] に、「csvsession」と入力します。
    3. [ファイル パス] に、データのコピー元の CSV ファイルのパスを指定します。
    4. CSV テーブルにヘッダーがある場合は、[ヘッダーを含む] を選択します。
    5. CSV ファイルで使用されている区切り文字を選択します。
    6. 変更を保存します。
  3. CSV からデータを読み込み、データ テーブル変数に格納します。
    1. [アクション] パネルから、[CSV/TXT] > [読み取り] アクションを見つけて Bot エディターに追加します。
    2. [セッション名] に、「csvsession」と入力します。
    3. [値を変数に代入] で、[(x)] をクリックして、TableFromCSV という名前の変数を作成します。
    4. 変更を保存します。
  4. CSV ファイルを閉じます。
    1. [アクション] パネルから、[CSV/TXT] > [閉じる] アクションを見つけて Bot エディターに追加します。
    2. [セッション名] に、「csvsession」と入力します。
    3. 変更を保存します。
  5. Google ドライブに接続します。
    1. [アクション] パネルから、[Google ドライブ] > [接続] アクションを見つけて Bot エディターに追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、設定済みの OAuth 接続に関連付けられている E メール ID を入力します。
    3. [OAuth2 認証モード] で、[Control Room でマネージ] を選択します。
    4. [選択] をクリックし、Control Room で構成した接続を選択します。
    5. 変更を保存します。
  6. Google シートに接続します。
    1. [アクション] パネルから、[Google シート] > [接続] アクションを見つけて Bot エディターに追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、設定済みの OAuth 接続に関連付けられている E メール ID を入力します。
    3. [セッション名] に、「gsheetsession」と入力します。
    4. [OAuth2 認証モード] で、[Control Room でマネージ] を選択します。
    5. [選択] をクリックし、Control Room で構成した接続を選択します。
    6. 変更を保存します。
  7. Google ドライブに新しいシートを作成する前に、作成しようとしているファイルがすでに存在するかどうかを確認してください。指定したパスにファイルが存在しない場合のみ、ファイルを作成します。これを行うには、[設行/キャッチ] アクションを使用します。
    1. [アクション] パネルから、[エラー ハンドラー] > [試行] アクションを見つけて Bot エディターに追加します。
    2. 変更を保存します。
  8. ファイルがすでに存在するかどうかを確認するには、Google ドライブの [ファイル/フォルダーを検索] アクションを使用します。
    1. [アクション] パネルから、[Google ドライブ] > [ファイル/フォルダーを検索] アクションを見つけて [設行] ブロック内に追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. [検索] で、[ファイル] をクリックします。
    4. [ソース フォルダー パス] に、ソース フォルダーを入力します。たとえば、このサンプル シナリオでは、Bot はパス aa-docs\spreadsheets でファイルを検索します。
    5. [タイプを照合] で、[完全一致] を選択します。
    6. [ファイル/フォルダー名] に、「contacts」と入力します。
    7. [ファイルまたはフォルダーのリストを返す] で、[ディクショナリ] を選択します。
    8. [(x)] をクリックし、名前が FileFolderDictionary、サブ タイプが [任意] のディクショナリ変数を作成します。
    9. 変更を保存します。
  9. このファイルが存在しない場合は作成します。
    1. [アクション] パネルから、[Google シート] > [ブックを作成] アクションを見つけて [キャッチ] ブロック内に追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. [セッション名] に、「gsheetsession」と入力します。
    4. [ワークブック名] に、「contacts」と入力します。
    5. [ファイル パス] で、[元の共有場所] をクリックし、親フォルダーのパスを入力します。たとえば、このサンプル シナリオでは、Bot はパス aa-docs\spreadsheets でファイルを検索します。
    6. 変更を保存します。
  10. Google ドライブからスプレッドシートを開くには、ファイル ID かファイル パスが必要です。この Bot は動的にファイルを作成するので、Bot を実行する前にファイルのパスを知ることはできません。しかし、Google ドライブの [ファイル/フォルダーを検索] アクションをもう一度使用してファイル ID を取得できます。
    1. [アクション] パネルから、[Google ドライブ] > [ファイル/フォルダーを検索] アクションを見つけて [設行/キャッチ] ブロックの後に追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. [検索] で、[ファイル] をクリックします。
    4. [ソース フォルダー パス] に、ソース フォルダーを入力します。たとえば、この例のサンプル Bot は、パス aa-docs\spreadsheets でファイルを検索します。
    5. [タイプを照合] で、[完全一致] を選択します。
    6. [ファイル/フォルダー名] に、「contacts」と入力します。
    7. [ファイルまたはフォルダーのリストを返す] で、[ディクショナリ] をクリックし、FileFolderDictionary 変数を選択します。
      「ファイル/フォルダーを検索」API から、一致したファイルに関する情報を含むディクショナリが返されます。このディクショナリには、NumberOfFiles というキーが含まれています。これは、一致したファイルの数を示します。ディクショナリには、一致したファイルの数に応じて、File1、File2 といった名前のキーも含まれます。これらのキーには、ファイル名やファイル ID などの情報が JSON 形式で格納されています。以下は、「ファイル/フォルダーを検索」API 呼び出しによって返されるディクショナリの例です。
      {NumberOfFiles,1},{File1,{"fileName":"contacts","fileId":"171yBUzqH80ZW_KLEp23DwebzkCdDZgnGFWBzB6K9kco"}}
      File1 キーに値として関連付けられている JSON 文字列を解析することで、ファイル ID を取得できます。
    8. 変更を保存します。
  11. File1 キーに関連付けられている JSON 文字列を解析します。
    1. [アクション] パネルから、[JSON] > [セッションを開始] アクションを見つけて追加します。
    2. [情報源] で、[テキスト] を選択し、「$FileFolderDictionary{File1}$」と入力します。
    3. [JSON オブジェクト・セッション] で、[ローカル・セッション] をクリックし、「jsonsession」と入力します。
    4. 変更を保存します。
  12. JSON オブジェクトからファイル ID を取得します。
    1. [アクション] パネルから、[JSON] > [ノード値の取得] を見つけて追加します。
    2. [JSON ノード キーまたはパス] に、「fileId」と入力します。
    3. [セッション名] に、「jsonsession」と入力します。
    4. [結果を変数に保存] で、[(x)] をクリックし、FileId という変数を作成します。
    5. 変更を保存します。
  13. JSON セッションを終了します。
    1. [アクション] パネルから、[JSON] > [セッションの終了] アクションを見つけて追加します。
    2. [セッション名] に、「jsonsession」と入力します。
    3. 変更を保存します。
  14. 取得したファイル ID を使用して、Google ドライブで作成したスプレッドシートを開きます。
    1. [アクション] パネルから、[Google シート] > [スプレッドシートを開く] アクションを見つけて追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. [セッション名] に、「gsheetsession」と入力します。
    4. [シートを開く] で、[スプレッドシート ID から] をクリックし、「$FileId$」と入力します。
    5. 変更を保存します。
  15. データ テーブル変数を Google シートに書き込みます。
    1. [アクション] パネルから、[Google シート] > [データ テーブルから書き込む] アクションを見つけて追加します。
    2. [セッション名] に、「gsheetsession」と入力します。
    3. [シートのオプション] で、[特定のシート] をクリックし、[シート名] に「Sheet1」と入力するか、ターゲット スプレッドシートのシート名を入力します。
    4. [データ テーブル変数を入力] で、[TableFromCSV] を選択します。
    5. [開始セルの値] に、「A1」と入力します。
    6. 変更を保存します。
  16. Google ドライブと Google シートを接続解除します。
    1. [アクション] パネルから、[Google ドライブ] > [接続解除] アクションを見つけて追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. 変更を保存します。
    4. [アクション] パネルから、[Google シート] > [接続解除] アクションを見つけて追加します。
    5. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    6. [セッション名] に、「gsheetsession」と入力します。
    7. 変更を保存します。
  17. Bot を実行します。