我想从网站上获取媒体。该媒体应该列出类似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类型的卡这样的对象?
答案 0 :(得分:1)
如果您的邮件中有附件,Facebook将呈现轮播。您的附件集合为空,并且您正在发送频道数据信息,但不会将其呈现为轮播。
图片和视频都支持BotFramework
中的附件,您只需使用可用的富卡而不是使用渠道数据将其发送给用户。
查看RichCards sample以了解如何创建每张支持的卡片。此外,您可能还想查看Carousel sample。