频道数据属性:轮播?

时间:2017-03-29 13:07:53

标签: c# botframework

我想从网站上获取媒体。该媒体应该列出类似Carousel卡模板。

使用循环我想将所有媒体存储在一个对象中。

有这个:

 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 Messenger不会将其渲染为&#34; carousel&#34;。

任何想法如何显示像Carousel类型的卡这样的对象?

1 个答案:

答案 0 :(得分:1)

如果您的邮件中有附件,Facebook将呈现轮播。您的附件集合为空,并且您正在发送频道数据信息,但不会将其呈现为轮播。

图片和视频都支持BotFramework中的附件,您只需使用可用的富卡而不是使用渠道数据将其发送给用户。

查看RichCards sample以了解如何创建每张支持的卡片。此外,您可能还想查看Carousel sample

最后,查看附件和Rich卡的文档总是一个好主意。请参阅thisthis