My Eventトリガー
My Eventの概要と設定方法について
概要
My Event を使用すると、自社プロダクトで発生したイベントをもとに Anyflow のソリューションを実行することができます。
My Event を使用したソリューションを実行するまでの流れは次のようになります:
1
My Event を作成する
Anyflow Embed 管理画面
2
ソリューションのトリガーで使用する My Event を選択しデプロイ
Anyflow Embed 管理画面
3
My Event エンドポイントにAPIリクエストを送信する
自社プロダクト
4
My Event を使用したソリューションが実行される
Anyflow Embed
エンドユーザーでのインストールは必要です
他のトリガーと同様、エンドユーザーがソリューションをインストールしている場合のみ実行されます。
エンドユーザーがソリューションをインストールしていない場合、My Event のAPIリクエストを送信してもソリューションは実行されません。
My Event を作成する
My Event は管理画面から作成できます。
My Event を作成するためには以下の情報が必要です。
名前
My Event の表示名です。管理画面上の UI に表示する目的で使用します。
キー
My Event を識別するためのキーです。My Event エンドポイントへのリクエストに指定します。
スキーマ
My Event のペイロードの構造を表すスキーマです。My Event トリガーの変数の型として使用します。任意のスキーマを指定することができます。
ここでは例として、次のように設定します。
名前
ユーザーが作成された時
キー
user_created
スキーマ
{ "user_name": "john", "is_admin": false }
スキーマには有効な JSON を指定します。 JSON 内で指定した値(この例では "john"
と false
)はソリューションエディタ内での変数のサンプル値や、テスト実行時のテスト値として使用されます。
ソリューションのトリガーで使用する My Event を選択する
My Event が送信されたときに実行したいソリューションのソリューションエディタを開き、トリガーとして「My Event トリガー」を選択してから使用する My Event を選択します。
My Event を選択すると、トリガーの変数として、選択した My Event のペイロードが使えるようになります。ペイロード変数の型は My Event を作成するときに指定したスキーマに従います。
ここでは例として、先程作成した ユーザーが作成された時
を選択します。この My Event を選択すると、トリガーの変数として文字列型の user_name
変数と、論理型の is_admin
変数をプロパティとして持つ ペイロード
変数が使用できるようになります。
複数のソリューションを同時に実行する
同じ My Event を複数のソリューションのトリガーとして設定することもできます。そうした場合、My Event が送信されたときに以下を満たす全てのソリューションが実行されます。
その My Event をトリガーに使用していること
エンドユーザーがソリューションをインストールしていること
例えば、 My Eventを使用したソリューション A, B, C が存在する状態で エンドユーザーが A, B をインストールしていた場合、 My Eventを実行するとA, Bが実行されます。
My Event エンドポイントにリクエストを送信する
以下の My Event エンドポイントに対してリクエストを送信することで、指定した My Event を使用しているソリューションを実行することができます。
https://for-product-api.anyflow.jp/sdk/send_my_event
リクエストボディには次のような JSON を指定します。
key
には実行したい My Event のキーを、 payload
には My Event のペイロードとして使用する値を指定します。ペイロードは My Event のスキーマとして指定した JSON と同じ構造でなければなりません。
リクエストが受理されると、アクセストークンに紐づいたエンドユーザーの、送信した My Event (この例では ユーザーが作成された時
)を使用しているソリューションが全て実行されます。
404エラーとなるケース
レスポンスが404エラーとなり「my_event_not_found_or_stopped」というメッセージが返却される場合は、以下の状況が考えられます。
指定した My Event が見つからない
指定した My Event を使用するソリューションが存在しない
指定した My Event を使用するソリューションをエンドユーザーがインストールしていない
指定した My Event を使用するソリューションをエンドユーザーが無効にしている
なお、My Event リクエストに対するレスポンスは基本的に「Anyflowサーバーが正しいリクエストを受け取れたかどうか」のみを判定して返却しています。
正常(200)の場合でもエラー(404)の場合でも、レスポンスはソリューションの処理結果を待たずに瞬時に返却されます。
TIPS : エンドユーザーでのトークン入力等を省く方法
しかし、自社プロダクトにログインしているエンドユーザーが、再度自社プロダクトの認証を行うのは手間に感じるかもしれません。
この場合、Tokenの値をエンドユーザー変数で取得するのではなく、My Event のペイロードに含めてしまえば、エンドユーザーの入力は不要になります。
My Event は自社プロダクトの内部処理からリクエストできるため、tokenの存在をエンドユーザーが意識することなくソリューションを実行することが可能です。
最終更新