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 Transformers | Socket Transformers |
endpoint | Endpoint の設定オブジェクト。URLTokenなどが含まれます。 | X | X |
request | JSONをパースしたボディを持つ Expressリクエストオブジェクト。 | X | X |
response | Expressレスポンスオブジェクト。 | X | X |
Transformerの戻り値
Inject Transformer
は、有効なユーザーID、セッションID、およびFlowに送るべきテキストやデータを返さなければなりません。これらの値はリクエストボディから抽出する必要があります。リクエストボディのフォーマットは、使用される特定のチャネルによって異なることに注意することが重要です。例えば、Alexaからのリクエストは、Facebook (Meta) Messengerからのリクエストとはまったく異なるように見えます。したがって、リクエストボディのフォーマット方法を知るためには、そのチャネルのドキュメントを読む必要があります。
Inject Transformer
がfalsy(偽)値を返した場合、メッセージはユーザーに転送されません。
戻り値の検証
Inject Transformer
の戻り値は、一連のルールに対して検証され、ルールが満たされていない場合は拒否されます。ルールは以下の通りです:
・ユーザー IDは戻り値において必須です。最大256文字列です。
・セッションIDは必須です。こちらも最大256文字列です。
・テキストは必須ではありませんが、最大10000文字列です。
・データオブジェクトは必須ではありません。
テキストもデータも定義されていない場合、検証も失敗します。