Inject Transformer

説明

Inject Transformerにより、Inject APIにフックが可能となります。一般的なユースケースは、外部システムがトークにフックし、例えば、あるプロセスが完了した後にユーザーに通知を送信する必要がある場合です。Inject Transformerを使用することで、外部サービスのWebhookペイロードをInject APIに必要な正しいフォーマットに変換するサービスを用意する必要がなくなります。Inject Transformerで全て処理可能となりました。

Inject Transformerは、Inject Transformer APIが呼び出されたときにトリガーされます。これにより、外部サービスからのカスタムリクエストボディは解析され、Inject APIに必要な値、すなわちユーザーIDやセッションID、テキストやデータを返すことができ、これらは通知としてユーザーに送られます。

Inject Transformerは、EndpointのTransformerにhandleInject関数を実装することで構成されます。

REST Transformer対応

Inject Transformerは、RESTベースのEndpointには対応していません。

Transformer関数の引数

handleInject関数は、設定オブジェクトを引数として受け取ります。オブジェクト内のキーの概要を以下に示します。

引数説明Webhook TransformersSocket Transformers
endpointEndpoint の設定オブジェクト。URLTokenなどが含まれます。XX
requestJSONをパースしたボディを持つ Expressリクエストオブジェクト。XX
responseExpressレスポンスオブジェクト。XX

Transformerの戻り値

Inject Transformerは、有効なユーザーID、セッションID、およびFlowに送るべきテキストやデータを返さなければなりません。これらの値はリクエストボディから抽出する必要があります。リクエストボディのフォーマットは、使用される特定のチャネルによって異なることに注意することが重要です。例えば、Alexaからのリクエストは、Facebook (Meta) Messengerからのリクエストとはまったく異なるように見えます。したがって、リクエストボディのフォーマット方法を知るためには、そのチャネルのドキュメントを読む必要があります。

Inject Transformerがfalsy(偽)値を返した場合、メッセージはユーザーに転送されません。

戻り値の検証

Inject Transformerの戻り値は、一連のルールに対して検証され、ルールが満たされていない場合は拒否されます。ルールは以下の通りです:

・ユーザー IDは戻り値において必須です。最大256文字列です。
・セッションIDは必須です。こちらも最大256文字列です。
・テキストは必須ではありませんが、最大10000文字列です。
・データオブジェクトは必須ではありません。

テキストもデータも定義されていない場合、検証も失敗します。