首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Botframework V4: messenger上的视频附件

问Botframework V4: messenger上的视频附件
EN

Stack Overflow用户
提问于 2019-02-18 11:11:06
回答 1查看 333关注 0票数 0

嗨,我尝试了所有这些将视频附加到机器人上的方法。它们在机器人仿真器中都工作得很好。但是当我将它发布到messenger时,它抛出了一个异常。(顺便说一句,因为这条消息,我只是知道,我看不到异常。有没有办法查看或记录异常?)messenger不支持显卡吗?或者youtube不支持作为url链接?

代码如下:

代码语言:javascript
复制
     AddStep(async (stepContext, cancellationToken) =>
        {
            var reply = stepContext.Context.Activity.CreateReply();
            reply.Attachments = new List<Attachment>();
            reply.Attachments.Add(GetVideoCard().ToAttachment());
            await stepContext.Context.SendActivityAsync(reply, cancellationToken);
            return await stepContext.NextAsync();
        });

////////////////

   private static VideoCard GetVideoCard()
    {
        var videoCard = new VideoCard
        {
            Title = "Budgeting Introduction",
            Subtitle = "by Finko",

            Media = new List<MediaUrl>
            {
                new MediaUrl()
                {
                    Url = "https://www.youtube.com/watch?v=XLo1geVokhA",
                },
            },
            Buttons = new List<CardAction>
            {
                new CardAction()
                {
                    Title = "Learn More at Finko.PH",
                    Type = ActionTypes.OpenUrl,
                    Value = "https://m-moreno.wixsite.com/finkoph?fbclid=IwAR1NVtlyKfzZ0mYFIWva8L-d8TUv4KFpt_m1i1ij3raT-pbWr2c3-kqzB2Q",
                },
            },
        };

        return videoCard;
    }

和

代码语言:javascript
复制
    AddStep(async (stepContext, cancellationToken) =>
        {
            var activity = stepContext.Context.Activity;
            await stepContext.Context.SendActivityAsync(CreateResponse(activity, CreateVideoCardAttacment()));
            return await stepContext.NextAsync();
        });

////////////////////////

   private Activity CreateResponse(Activity activity, Attachment attachment)
    {
        var response = activity.CreateReply();
        response.Attachments = new List<Attachment>() { attachment };
        return response;
    }

    private Attachment CreateVideoCardAttacment()
    {
        return new VideoCard()
        {
            Title = "Are you a Seafarer? OFW? FREE PERSONAL FINANCIAL ADVICE HERE!!",
            Media = new List<MediaUrl>()
            {
                new MediaUrl("https://www.youtube.com/watch?v=XLo1geVokhA")
            },
            Buttons = new List<CardAction>()
            {
                new CardAction()
                {
                    Type = ActionTypes.OpenUrl,
                    Title = "Learn More at Finko.PH",
                    Value = "https://m-moreno.wixsite.com/finkoph?fbclid=IwAR1NVtlyKfzZ0mYFIWva8L-d8TUv4KFpt_m1i1ij3raT-pbWr2c3-kqzB2Q"
                }
            },
            Subtitle = "by Finko.Ph",
            Text = "Are you tired of getting bogus financial advice? Tired of having 'kape' just to find out it was networking, or a pyramid scheme? Tired of scouring the internet for HOURS but not finding what you're looking for? We're here to help! We give financial advice and will educate you on financial literacy topics, ABSOLUTELY FREE!!"
        }.ToAttachment();
    }

和

代码语言:javascript
复制
       Activity reply = stepContext.Context.Activity.CreateReply();
            var card = new VideoCard
            {
                Title = "Finko.ph",
                Media = new List<MediaUrl>()
                {
                    new MediaUrl("https://www.youtube.com/watch?v=XLo1geVokhA")
                },
                Buttons = new List<CardAction>()
                {
                    new CardAction()
                    {
                        Type = ActionTypes.OpenUrl,
                        Title = "Learn More at Finko.PH",
                        Value = "https://m-moreno.wixsite.com/finkoph?fbclid=IwAR1NVtlyKfzZ0mYFIWva8L-d8TUv4KFpt_m1i1ij3raT-pbWr2c3-kqzB2Q"
                    }
                },
            };
            reply.Attachments.Add(card.ToAttachment());
            await stepContext.Context.SendActivityAsync(reply);
            return await stepContext.NextAsync();

和

代码语言:javascript
复制
    var reply1 = stepContext.Context.Activity.CreateReply();
            var attachment1 = new Attachment
            {
                ContentUrl = "https://www.youtube.com/watch?v=XLo1geVokhA",
                ContentType = "video/mp4",
                Name = "imageName1",
            };
            reply1.Attachments = new List<Attachment>() { attachment1 };
            await stepContext.Context.SendActivityAsync(reply1, cancellationToken);
            return await stepContext.NextAsync();

所有这些代码都可以在机器人模拟器中运行,但在messenger中不能运行。任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-02-19 01:47:45

BotFramework将视频卡转换为Facebook Messenger的媒体模板,并且根据Facebook的开发人员文档,媒体模板不允许任何外部URL,只允许在Facebook上的URL。你必须将视频上传到Facebook,或者直接提供mp4文件的网址,不幸的是,YouTube并没有提供这个网址。

有关更多详细信息,请查看有关Media Templates的Facebook文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54739980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档