2017-03-29 5 views
0

私はウェブサイトからメディアを入手したい。そのメディアはカルーセルカードテンプレートのようなものにする必要があります。チャンネルデータのプロパティ:カルーセル?

ループでは、すべてのメディアを1つのオブジェクトに保存します。

は、この有無:

resultMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; 
       resultMessage.Attachments = new List<Attachment>(); 
       var fbObject = new object[activities.Count]; 
    while (!stop) 
    { 
    if (activities[counter].MediaTypeValue != (int)MediaTypeEnum.Video) 
         { 
          fbObject[counter] = new 
          { 
           type = "image", 
           payload = new object[] 
           { 
             new 
             { 
              url = activities[counter].DocumentPath 
             }, 
           } 
          }; 
         } 
         else 
         { 
          fbObject[counter] = new 
          { 
           type = "video", 
           buttons = new object[] 
           { 
             new 
             { 
              type = "web_url", 
              url = activities[counter].DocumentPath, 
              title = activities[counter].FirstName + " " + activities[counter].LastName + " posted " + BotHelper.UserPosted(activities[counter].MediaTypeValue), 
              webview_height_ratio = "compact", 
              messenger_extensions = true 
             } 
           } 
          }; 
         } 
    counter--; 
        if (counter < 0) 
         stop = true; 

    } 


resultMessage.ChannelData = JObject.FromObject(new { fbObject }); ; 
       await context.PostAsync(resultMessage); 

をしかし、Facebookのメッセンジャーは "カルーセル" としてそれをレンダリングされません。

どのようにカルーセルタイプのカードのようなオブジェクトを表示するか考えていますか?

答えて

1

あなたのメッセージに添付ファイルがある場合、Facebookはカルーセルをレンダリングします。添付ファイルのコレクションは空であり、カルーセルとしてレンダリングされないチャネルデータ情報を送信しています。

BotFrameworkに画像と動画の両方が添付されています。チャンネルデータを使用する代わりに、利用可能なリッチカードを使用してユーザーに送信することができます。

RichCards sampleを参照して、サポートされている各カードの作成方法を理解してください。また、Carousel sampleを確認することもできます。

最後に、添付ファイルとリッチカードに関するドキュメントを確認することをお勧めします。 thisおよびthisを参照してください。