最近のアクセス:
Chatbot と WhatsApp チャネルの使用時にユーザー ID を取得する方法

WhatsApp を通じて Chatbot を公開するとき、ユーザーの ID (メッセージ受信者) は Webhook で取得されます。アーキテクチャにより (Webhook はサービスであり、[ Call protocol ] プロパティが HTTP のプロシージャー)、この情報は他のコードから後で取得できる場所に保持する必要があります。
このため、この情報は他で使用できるようコンテキストに保持されます。

ユーザー ID を保存するコード

ユーザー ID は、WhatsappWebhook オブジェクトによって呼び出される SendMessageFromChannel というプロシージャーでコンテキストに保持されます。
Conversational Flows オブジェクト[ Enable WhatsApp ] プロパティが True に設定され、WhatsApp パートナーのデータも設定されている場合 ([ Twilio Token ] プロパティなど)、WhatsappWebhook は自動生成されます。
この Webhook で SendMessageFromChannel プロシージャー (CommonChatbots モジュール内にある) が呼び出され、メッセージの保存、Chatbot の呼び出し、応答の保存が行われます。
イメージ:45856.png
SendMessageFromChannel プロシージャーは、GetUserIdByDevice プロシージャーを使用してユーザー ID を取得します。ユーザーのメッセージの受信者をパラメーターとして取得し、そのユーザーのコンテキストに保存されるユーザーの GUID を返します:
イメージ:45857.png

この情報の使用方法

この情報は AnalyzeResponse オブジェクトに保存されますが、他のコードから取得するには、Context タイプの変数を使用する必要があります。Context は <InstanceName>Chatbot という名前のモジュールの下にある SDT です。たとえば、インスタンス名が「Citizen」の場合、Context SDT は CitizenChatbot モジュールの下にあります。
インスタンス化された Context を使用できます。たとえば、Context をインスタンス化できるプロシージャーは (パラメーターとして自動的に受け取れるため)、任意のユーザー入力の Validation プロシージャーです。
ユーザーの GUID を取得するには、次のようにします:
&UserIdContext = &Context.Context.GXUserId

使用可能バージョン

GeneXus 16 Upgrade 10 以降





サブページ
Created: 22/03/14 00:47 by Admin Last update: 23/05/31 20:53 by Admin
カテゴリ
Powered by GXwiki 3.0