ここでは、Facebook Messenger Channels API でサポートされているメッセージタイプを示します。この API の詳細については、「Chatbot で Facebook Messenger を使用する方法」を参照してください。
すべての例で GeneXusChannels.Message.SendMessage API を使用しています。
&Message.Text = !"Hello world" //&Message は GeneXusChannels.Message データタイプ
GeneXusChannels.Message.SendMessage(&ChannelConfiguration, &Message, &Messages) //&ChannelConfiguration は ChannelConfiguration SDT。&Messages は GeneXus.Common.Messages
汎用テンプレート データ タイプにマッピングされます。
「Facebook Messenger を使用した Chatbot のサンプル」で SendMessagesFb オブジェクトを確認してください。
基本的には次の処理を行います。
&ChannelConfiguration = GetConfiguration() //チャネルの設定を取得
&Message = GetGOTCharacters()
Do 'SendMessage'
Sub 'SendMessage'
GeneXusChannels.Message.SendMessage(&ChannelConfiguration, &Message, &Messages)
msg(Format(!"%1 result: %2", &Message.Text, &Messages.ToJson()), status)
EndSub
GetGOTCharacters プロシージャーがデータプロバイダー (GOTCharacters) を呼び出し、これが GeneXusChannels.Message パラメーター (この例では &GridMessage) を返します。
&Message ペイロートの Type は「PayloadTypes.Grid」で、Body はメッセージの JSON データに割り当てる必要があります。
GetGOTCharacters プロシージャー:
&GridMessage = GOTCharacters()
&Message.Text = !"The winter is here ;)"
&Message.Payload.Type = PayloadTypes.Grid
&Message.Payload.Body = &GridMessage.ToJson()
GOTCharacters データプロバイダーを確認し、その実装方法を理解してください。
この例では次のドメインを使用しています。
FacebookGridProperties |
Facebook のグリッドメッセージに固有のプロパティの定義が含まれるドメインです。データとグリッドのマッピングを助けるために指定します。 |
FacebookGridProperties.Title |
グリッドの項目 (ページ) のタイトルを表します。 |
FacebookGridProperties.Subtitle |
グリッド項目のサブタイトルまたは説明を表します。 |
FacebookGridProperties.Image |
グリッド項目に表示する画像を表します。 |
FacebookGridProperties.Button |
グリッドに追加できるボタンを表します。 |
PayloadTypes |
さまざまなメッセージタイプが含まれるドメインです。 |
実行時には、次のように表示されます。
チャネルの詳細な設定方法については、「Chatbot で Facebook Messenger を使用する方法」を参照してください。
画像やビデオを送信できます。Facebook のメディアテンプレートにマッピングされます。
「Facebook Messenger を使用した Chatbot のサンプル」で SendMessagesFb オブジェクトを確認してください。
次のコードを確認します。
&Message = GetGOTAppVideo()
Do 'SendMessage'
Sub 'SendMessage'
GeneXusChannels.Message.SendMessage(&ChannelConfiguration, &Message, &Messages)
msg(Format(!"%1 result: %2", &Message.Text, &Messages.ToJson()), status)
EndSub
仕組みについて理解を深めるためには、GetGOTAppVideo オブジェクトを開きます。
&Message.Text = !"Let me introduce you to the GOT app!"
&MediaMessage = GOTAppVideo()
&Message.Payload.Type = PayloadTypes.Media
&Message.Payload.Body = &MediaMessage.ToJson()
チャットで Web サイトのレンダリングを可能にします。Facebook の URL ボタンにマッピングされます。
「Facebook Messenger を使用した Chatbot のサンプル」で SendMessagesFb オブジェクトを確認してください。
次のコードを確認します。
&Message = GetGOTWiki()
Do 'SendMessage'
Sub 'SendMessage'
GeneXusChannels.Message.SendMessage(&ChannelConfiguration, &Message, &Messages)
msg(Format(!"%1 result: %2", &Message.Text, &Messages.ToJson()), status)
EndSub
仕組みについて理解を深めるためには、GetGOTWiki オブジェクトを開きます (WebViewMessage を返すデータプロバイダーを呼び出します)。
&Message.Text = !"This is the wiki of GOT:"
&WebViewMessage = GOTWiki()
&Message.Payload.Type = PayloadTypes.WebView
&Message.Payload.Body = &WebViewMessage.ToJson()
GOTWiki データプロバイダーを次に示します。データプロバイダーの出力は WebViewMessage です。
この例では次のドメインを使用しています。
FacebookWebViewProperties |
Facebook の Web ビューに固有のプロパティが含まれるドメインです。 |
FacebookHeightRatio |
さまざまな高さ比のオプションが含まれるドメインです。 |
実行時には、次のようになります。
ユーザーが簡単な返信を返せるようにします。Facebook のクイック返信にマッピングされます。
「Facebook Messenger を使用した Chatbot のサンプル」で SendMessagesFb オブジェクトを確認してください。
次のコードを確認します。
&Message = GetGOTFavorites()
Do 'SendMessage'
Sub 'SendMessage'
GeneXusChannels.Message.SendMessage(&ChannelConfiguration, &Message, &Messages)
msg(Format(!"%1 result: %2", &Message.Text, &Messages.ToJson()), status)
EndSub
GetGOTFavorites プロシージャーは次のようになります。GOTFavorites というデータプロバイダーを呼び出します。
&Message.Text = !"Think fast!"
&QuickRepliesMessage = GOTFavorites()
&Message.Payload.Type = PayloadTypes.QuickReplies
&Message.Payload.Body = &QuickRepliesMessage.ToJson()
GOTFavorites データプロバイダーには QuickRepliesMessage SDT に基づく出力があります。
この例では次のドメインを使用しています。
FacebookQuickRepliesProperties |
Facebook のクイック返信に固有のプロパティが含まれるドメインです。 |
FacebookQuickRepliesContentTypes |
クイック返信のさまざまなコンテンツ タイプ オプションが含まれるドメインです。 |
実行時には、次のようになります。
&Message.Text = !"Send QuickReplies"
&QuickRepliesMessage.Text = !"Are you sure?"
//はい
&QuickReply = new()
&QuickReply.Text = !"Yes"
&QuickReplyProperty = new()
&QuickReplyProperty.Key = FacebookQuickRepliesProperties.ContentType
&QuickReplyProperty.Value = FacebookQuickRepliesContentTypes.Text
&QuickReply.Properties.Add(&QuickReplyProperty)
&QuickReplyProperty = new()
&QuickReplyProperty.Key = FacebookQuickRepliesProperties.ImageUrl
&QuickReplyProperty.Value = !"http://pngimg.com/uploads/image.png"
&QuickReply.Properties.Add(&QuickReplyProperty)
&QuickRepliesMessage.Replies.Add(&QuickReply)
//いいえ
&QuickReply = new()
&QuickReply.Text = !"No"
&QuickReplyProperty = new()
&QuickReplyProperty.Key = FacebookQuickRepliesProperties.ContentType
&QuickReplyProperty.Value = FacebookQuickRepliesContentTypes.Text
&QuickReply.Properties.Add(&QuickReplyProperty)
&QuickRepliesMessage.Replies.Add(&QuickReply)
//場所
&QuickReply = new()
&QuickReply.Text = !"Location"
&QuickReplyProperty = new()
&QuickReplyProperty.Key = FacebookQuickRepliesProperties.ContentType
&QuickReplyProperty.Value = FacebookQuickRepliesContentTypes.Location
&QuickReply.Properties.Add(&QuickReplyProperty)
&QuickRepliesMessage.Replies.Add(&QuickReply)
//電話
&QuickReply = new()
&QuickReply.Text = !"Call"
&QuickReplyProperty = new()
&QuickReplyProperty.Key = FacebookQuickRepliesProperties.ContentType
&QuickReplyProperty.Value = FacebookQuickRepliesContentTypes.PhoneNumber
&QuickReply.Properties.Add(&QuickReplyProperty)
&QuickRepliesMessage.Replies.Add(&QuickReply)
//メール
&QuickReply = new()
&QuickReply.Text = !"Email"
&QuickReplyProperty = new()
&QuickReplyProperty.Key = FacebookQuickRepliesProperties.ContentType
&QuickReplyProperty.Value = FacebookQuickRepliesContentTypes.Email
&QuickReply.Properties.Add(&QuickReplyProperty)
&QuickRepliesMessage.Replies.Add(&QuickReply)
&Message.Payload.Type = PayloadTypes.QuickReplies
&Message.Payload.Body = &QuickRepliesMessage.ToJson()
|