STEP1 | 独自のアクションを追加する
最終更新
最終更新
初級トライアルツアーで作成したソリューションをさらにアップデートさせていきましょう。
目指すべきゴールを端的に示すと以下の通りです。
トリガー
Google Drive (ファイル/フォルダが作成された際に実行)
同様
アクション
Slack Bot (ファイル名を投稿)
HTTP(独自アクションの追加) & Slack Bot(独自アクションのレスポンスを投稿)
中級用のツアーを始める準備を行います。
から、初級STEP4で作成したソリューションの複製を行います。
コピーが完了するとソリューションエディタが開きます。
ソリューションの名称は中級用の名前に変更しておきましょう。
Slackのアクションを2ステップ目に移動させます。
ifのステップは今回は利用しないため削除します。
HTTPコネクタは任意のAPIを実行できるため、自社のコネクタがAnyflow Embedに登録されていなくても自社のAPIを呼び出すことができます。
今回の中級トライアルツアーでは、HTTPコネクタでリクエストするAPIとして、Anyflowがデモ用に作成したAPIを利用します。
このAPIは架空の名刺管理ツールのAPIとして作成しており、名刺画像を受け取って、そこに含まれるリード情報を解析し返却するような挙動をします。
※返却される値はランダムな値であり、実際に名刺画像を読み取った結果ではありません。
あくまでも例として挙げているため、自社のAPIが利用可能な場合はそちらを使ってツアーを進めていただくことも可能です。
1ステップ目と2ステップ目の間で「ステップを追加」し、アクションとして「HTTP」を追加します。
表示名は任意です。今回は名刺読み取りAPI
としておきます。
HTTPメソッドはPOST
を選択します。
認証用のTokenをエンドユーザーから入力してもらうために、エンドユーザー変数を作成しておきます。ウィザードへの配置も忘れずに行ってください。
POSTを選択するとさらに設定項目が表示されますので、以下の内容を設定します。
リクエストURI
リクエストURLパラメータキー
設定不要
リクエストヘッダーキー
┗ Content-Type
application/json
┗ Authorization
Bearer {Token} ※Bearerと{Token}の間には半角スペースを入れてください
リクエストタイプ
json
リクエストボディの入力方法はデフォルト
にします。
リクエストボディ定義は、「JSONで追加」を選択します。
JSONを入力するモーダルが表示されるので、以下のJSONをコピーして貼り付けます。
<JSON>
「生成する」を押すとリクエストボディの定義が自動で生成されます。
リクエストボディには、Google Driveトリガーで取得した値を設定します。
file_name : Name
リクエスト側と同じ要領で、レスポンス側も設定を行います。
レスポンスヘッダー定義:設定不要
レスポンスタイプ:json
レスポンスボディ定義:以下のJSONを追加します。
HTTPで取得したレスポンスをSlackで投稿します。
例として、レスポンスの{data}
に含まれる要素を一通り追加しています。
今回のAPI仕様を踏まえると、ソリューションが成功するためには以下が必要になります。
ウィザードのToken欄に正しいトークン(anyflowtesttoken
)が入力されていること
Google Drive にアップロードされたファイルが画像ファイル(png/jpeg
)であること
これを踏まえて、成功パターンと失敗パターンのテスト実行を行います。
ウィザードのToken欄にanyflowtesttoken
を入力します。
Google Driveには画像ファイル(.png/.jpeg
)をアップロードします。
Slackに以下の様なメッセージが投稿されていれば成功です。
以下どちらかを実施します
ウィザードのToken欄に正しくないトークン文字列(例:invalidtoken
)を入力する
Google Driveに画像ファイル以外のファイル(例:.txt
)をアップロードする
いずれもSlackにはメッセージが投稿されず、ソリューションが失敗になっているはずです。
上記の様に、様々な理由でソリューションはエラーになり得ます。
Anyflow Embedではそれぞれのケースに対応する機能を持っています。(詳細はこちら)
今回は
エラー監視ステップの導入
Google Drive トリガーへの条件付与
によりエラーへの対応を追加します。
ステップ1と2の間に「エラー」ステップを追加します。
「エラー監視」と「エラーならば」のステップが追加されるので、エラー監視の内側にHTTPとSlackのステップを移動します。
「エラーならば」の内側に、新たにSlackコネクタを配置し、エラー時のメッセージを設定します。
これによりエラーが発生した際に「エラーならば」の内側のステップが実行され、Slackメッセージが送られますが、ソリューションの結果としては「成功」のステータスになってしまいます。
停止ステップを使うとソリューションを強制的に停止させ、実行ステータスを「成功」「失敗」のどちらかに固定することができます。
「エラーならば」の内側で停止ステップを追加します。
実行ステータスは「失敗にする」を選択します。
改めてテストを行います。
ウィザードのToken欄には、正しくないトークン文字列(例:invalidtoken
)を入力します。
ステータスが「失敗」になっていて、Slackにエラー通知が発生していれば完了です🎉
今回の場合、エンドユーザーがGoogle Driveを日常的に使うなかで、画像以外のファイルをUPしてしまうことは容易に考えられます。
その度に毎回通知が飛ぶのはユーザー体験を損ねるため、処理を修正します。
ステップ1を選択し「トリガー条件」を開きます。
条件を満たす場合のみトリガーを有効化できるため、2つの条件を設定します。
if Mime type 等しい image/png
OR Mime type 等しい image/jpeg
改めてテストを行います。
Google Driveに画像ファイル以外のファイル(例:.txt
)をアップロードします。
.txt
ファイルをUPしたにもかかわらずトリガーの待機状態が維持されており、
.png/.jpeg
ファイルをUPした場合にトリガーの待機状態が解除されていたら、完了です🎉
中級編 STEP1 お疲れ様でした。
今回のセクションでは、HTTPコネクタやエラーへの対応について学ぶことができました。
HTTPコネクタを使うと独自のアクション
を組み込んだソリューションを作成することができます。
今回はデモ用API での紹介でしたので、ぜひ実際のAPIでも試してみてください。
初級編と比べてボリュームも増えていますので、不明点があればAnyflow CSチームにご連絡ください。
次は、独自のトリガー
を組み込む方法をご紹介します。
にお進みください。
独自アクションを追加するにはを利用します。
を確認しながら設定を行います。
file_content:b64encode(File contents)
※を使って記述します
Anyflow EmbedのSDKが設置されている画面のURLを添えておくと、からエンドユーザー自身でエラー内容を確認することができます。
これを「失敗」のステータスにするために、を追加します。