STEP1 | 独自のアクションを追加する
概要
初級トライアルツアーで作成したソリューションをさらにアップデートさせていきましょう。
目指すべきゴールを端的に示すと以下の通りです。
トリガー
Google Drive (ファイル/フォルダが作成された際に実行)
同様
アクション
Slack Bot (ファイル名を投稿)
HTTP(独自アクションの追加) & Slack Bot(独自アクションのレスポンスを投稿)
0.中級用の準備を行う
中級用のツアーを始める準備を行います。
ソリューション一覧から、初級STEP4で作成したソリューションの複製を行います。

コピーが完了するとソリューションエディタが開きます。

ソリューションの名称は中級用の名前に変更しておきましょう。
Slackのアクションを2ステップ目に移動させます。

ifのステップは今回は利用しないため削除します。

1.HTTPコネクタを設定する
独自アクションを追加するにはHTTPコネクタを利用します。
HTTPコネクタは任意のAPIを実行できるため、自社のコネクタがAnyflow Embedに登録されていなくても自社のAPIを呼び出すことができます。
1-1. このツアーで利用するAPIについて
今回の中級トライアルツアーでは、HTTPコネクタでリクエストするAPIとして、Anyflowがデモ用に作成したAPIを利用します。
[デモ用] 名刺画像からリード情報を読取るAPI - Anyflow Demo

このAPIは架空の名刺管理ツールのAPIとして作成しており、名刺画像を受け取って、そこに含まれるリード情報を解析し返却するような挙動をします。
※返却される値はランダムな値であり、実際に名刺画像を読み取った結果ではありません。
あくまでも例として挙げているため、自社のAPIが利用可能な場合はそちらを使ってツアーを進めていただくことも可能です。
1-2. HTTPコネクタを追加する
1ステップ目と2ステップ目の間で「ステップを追加」し、アクションとして「HTTP」を追加します。

表示名は任意です。今回は名刺読み取りAPI
としておきます。

1-3. リクエストヘッダーを設定する
デモ用のAPI仕様書oを確認しながら設定を行います。
HTTPメソッドはPOST
を選択します。

認証用のTokenをエンドユーザーから入力してもらうために、エンドユーザー変数を作成しておきます。ウィザードへの配置も忘れずに行ってください。

POSTを選択するとさらに設定項目が表示されますので、以下の内容を設定します。
リクエストURLパラメータキー
設定不要
リクエストヘッダーキー
┗ Content-Type
application/json
┗ Authorization
Bearer {Token} ※Bearerと{Token}の間には半角スペースを入れてください
リクエストタイプ
json

1-4. リクエストボディを設定する
リクエストボディの入力方法はデフォルト
にします。
リクエストボディ定義は、「JSONで追加」を選択します。

JSONを入力するモーダルが表示されるので、以下のJSONをコピーして貼り付けます。
<JSON>
{
"file_name": "business-card.png",
"file_content": "iVBORw0KGgoAAAANSUhEUgAAATYAAACjCAMAAAA3vs..."
}

「生成する」を押すとリクエストボディの定義が自動で生成されます。

リクエストボディには、Google Driveトリガーで取得した値を設定します。
file_name : Name
file_content:b64encode(File contents)
※Formulaを使って記述します

1-5. レスポンスの設定を行う
リクエスト側と同じ要領で、レスポンス側も設定を行います。
レスポンスヘッダー定義:設定不要
レスポンスタイプ:json
レスポンスボディ定義:以下のJSONを追加します。
{
"status": "success",
"code": 200,
"message": "名刺データを読み取りました。",
"data": {
"id": 1,
"company": "株式会社AAA",
"department": "開発部",
"name": "田中 太郎",
"email": "[email protected]"
}
}

2.レスポンスをSlackで投稿する
HTTPで取得したレスポンスをSlackで投稿します。
例として、レスポンスの{data}
に含まれる要素を一通り追加しています。

3.テスト実行する
今回のAPI仕様を踏まえると、ソリューションが成功するためには以下が必要になります。
ウィザードのToken欄に正しいトークン(
anyflowtesttoken
)が入力されていることGoogle Drive にアップロードされたファイルが画像ファイル(
png/jpeg
)であること
これを踏まえて、成功パターンと失敗パターンのテスト実行を行います。
3-1.成功することの確認
ウィザードのToken欄にanyflowtesttoken
を入力します。
Google Driveには画像ファイル(.png/.jpeg
)をアップロードします。
Slackに以下の様なメッセージが投稿されていれば成功です。

3-2.失敗することの確認
以下どちらかを実施します
ウィザードのToken欄に正しくないトークン文字列(例:
invalidtoken
)を入力するGoogle Driveに画像ファイル以外のファイル(例:
.txt
)をアップロードする
いずれもSlackにはメッセージが投稿されず、ソリューションが失敗になっているはずです。


4.エラーに対応する
上記の様に、様々な理由でソリューションはエラーになり得ます。
Anyflow Embedではそれぞれのケースに対応する機能を持っています。(詳細はこちら)
今回は
エラー監視ステップの導入
Google Drive トリガーへの条件付与
によりエラーへの対応を追加します。
4-1.エラー監視ステップの導入
ステップ1と2の間に「エラー」ステップを追加します。

「エラー監視」と「エラーならば」のステップが追加されるので、エラー監視の内側にHTTPとSlackのステップを移動します。

「エラーならば」の内側に、新たにSlackコネクタを配置し、エラー時のメッセージを設定します。
Anyflow EmbedのSDKが設置されている画面のURLを添えておくと、ソリューション実行履歴からエンドユーザー自身でエラー内容を確認することができます。
// 例
エラーが発生しています。
以下のURLから内容を確認してください。
https://your-product.com/integration/

これによりエラーが発生した際に「エラーならば」の内側のステップが実行され、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チームにご連絡ください。
ネクストステップ
次は、独自のトリガー
を組み込む方法をご紹介します。
にお進みください。
最終更新