2017-03-01 8 views
0

FacebookにChannelDataを設定しようとすると、添付ファイルを添付していないとFacebookに表示されません。例えば:Facebookのチャンネルデータを設定する

私はこれを送信する場合:

var channelData = new JObject(); 
var child = new JObject(); 

child.Add("content_type", "text"); 
child.Add("title", "Red"); 
child.Add("payload", "DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED"); 

channelData.Add("quick_replies", new JArray(child)); 

var replyOrder = context.MakeMessage(); 
var attachments = CardFactoryFacebook.GetMainContactThumbnailCard(); 

replyOrder.Attachments.Add(attachments); 
replyOrder.ChannelData = channelData; 

await context.PostAsync(replyOrder); 

だからこのケースでは、我々はメッセンジャーThumbnailCardに表示され、すぐに私はChannelData「赤」で作られたボタンの下。

しかし、私はすべての添付ファイルを追加することなく、ChannelDataを設定している場合ので、例えばメッセンジャーには何も表示されません:

var replyOrder = context.MakeMessage(); 

replyOrder.ChannelData = channelData; 

await context.PostAsync(replyOrder); 

私は何かが足りないのですか? ありがとう

答えて

1

"アクティビティ"アタッチメントを置く必要はないと思います。すべてがチャンネルデータに定義されている必要があります(Facebookとそのカードについて)、この場合は "facebook"アタッチメントがあります。それはchannelDataの内部にあります。私はこのコードを作業中です:

Activity replyToConversation = activity.CreateReply("Quick Replies"); 

       dynamic messageData = new JObject(); 
       messageData.attachment = new JObject(); 
       messageData.attachment.type = "template"; 
       messageData.attachment.payload = new JObject(); 
       messageData.attachment.payload.template_type = "generic"; 


       messageData.attachment.payload.elements 
        = new JArray(
         new JObject(
          new JProperty("title", "hola"), 
          new JProperty("subtitle", "Mundo"), 
          new JProperty("buttons", 
           new JArray(
            new JObject(
             new JProperty("type", "element_share") 
            ) 
           ) 
          ) 
         ) 
        ); 


       replyToConversation.ChannelData = messageData; 
       ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); 
       await connector.Conversations.ReplyToActivityAsync(replyToConversation); 
+0

ありがとうございます。私はおそらくjson形式を正しく作成していないでしょう。 – Yehezkel

+0

これが成功した場合は、答えとして –

0

Botframework APIのFacebookメッセージの場合、AttachmentはあなたのFacebookメッセージを保存する場所です。メッセージのないメッセージを送るのはあまり意味がありません。

0

Quick Repliesがメッセージの一部として送信されています。 Facebookのドキュメントに基づいて、メッセージオブジェクトには有効なテキストまたは添付ファイルが含まれている必要があります。作成したチャンネル・データ・オブジェクトと

Quick Replies Doc

(整形式である)あなただけのメッセージの「quick_replies」部分を送信しています。例えばあなたのメッセージにテキストを追加

試してみてください。

replyOrder.Text = "What's your favorite color?"; 

クイック回答の特定の場合には、BotBuilderライブラリはすでに手動でChannelDataを作成することなく、それらを使用する方法を提供していますのでご注意くださいKeyboardCardを使用してください。詳細についてはthisを確認してください。

+0

とマークしてください。共有ボタンを作成するための素早い返信としてelement_shareを追加することは可能ですか – PirateApp

関連する問題