STEP1 | 独自のアクションを追加する

概要

初級トライアルツアーで作成したソリューションをさらにアップデートさせていきましょう。

目指すべきゴールを端的に示すと以下の通りです。

種類
Before
After

トリガー

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仕様を踏まえると、ソリューションが成功するためには以下が必要になります。

  1. ウィザードのToken欄に正しいトークン(anyflowtesttoken)が入力されていること

  2. 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にエラー通知が発生していれば完了です🎉

テスト結果のステータスが「失敗」になっている
テスト結果のステータスが「失敗」になっている
Slackにエラーの投稿がされている
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チームにご連絡ください。


ネクストステップ

次は、独自のトリガーを組み込む方法をご紹介します。

STEP2 | My Event を理解する

にお進みください。

最終更新