Botframework V4: видео вложение в мессенджере - PullRequest
0 голосов
/ 18 февраля 2019

Привет, я попробовал все эти способы прикрепления видео к боту.Все они отлично работают в эмуляторе бота.Но когда я публикую его в мессенджере, это исключение.(Я не вижу исключения по тому, что я просто знаю из-за сообщения. Есть ли способ увидеть или зарегистрировать исключения?).Видеокарта не поддерживается в мессенджере?Или YouTube не поддерживается в качестве URL-ссылки?

Вот коды:

     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;
    }

и

    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();
    }

и

       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();

и

    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();

Все эти коды работают в эмуляторе бота, но не в мессенджере.Спасибо за любую помощь, спасибо.

1 Ответ

0 голосов
/ 18 февраля 2019

BotFramework преобразует видеокарты в медиа-шаблоны для Facebook Messenger, и, согласно документации разработчика Facebook, медиа-шаблоны не допускают никаких внешних URL-адресов, только те, которые есть на Facebook.Вы должны либо загрузить видео в Facebook, либо указать URL-адрес непосредственно в файле mp4, который, к сожалению, на YouTube недоступен.

Для получения более подробной информации ознакомьтесь с документацией Facebook, касающейся шаблонов мультимедиа .

...