BotFramework V4 не воспроизводит карусель Изображения на мессенджере FB - PullRequest
1 голос
/ 11 марта 2019

Я развертываю свой код Botframework v4 в AZure, используя опцию непрерывного развертывания через Bitbucket.Я использую карты героев, чтобы раскрутить набор каруселей с кнопками.Изображения и перенаправление кнопок генерируются динамически на основе результатов вызова API.

Карусели отлично отображаются как в веб-чате в Azure, так и в эмуляторе Botframework (локально).Но при использовании мессенджера на лазуре я не могу отобразить карусели.Сервер возвращает ошибку -

Извините, похоже, что-то пошло не так.Microsoft.Bot.Schema.ErrorResponseException: Операция возвратила недопустимый код состояния «BadRequest» в Microsoft.Bot.Connector.Conversations.ReplyToActivityWithHttpMessagesAsync (String dialogId, String ActivityId, активность Activity, Dictionary2 customHeaders, CancellationToken cancellationToken) в Microsoft.ConversationsExtensions.ReplyToActivityAsync (операции IConversations, строковый разговор, строковый идентификатор активности, активность, активность, CancellationToken cancellationToken) в Microsoft.Bot.Builder.BotFrameworkAdapter.SendActivitiesAsync (ITurnContext turnContext, Activity [] отмены транзакций.

Хотя я должен сообщить, что я легко могу отображать отдельные изображения в виде вложений.Эти изображения имеют жестко запрограммированные URL-ссылки, и они отображаются.Но когда я использую карты героев с динамическими кнопками и ссылками, я получаю вышеуказанную ошибку.Я добавляю пример кода, который я использую для отображения каруселей.

var client = new RestClient("https://XXXXXXXXXXXXXXXXXX/");
var request = new RestRequest($"api/Flights/carousel/summary?to={state.Destination}&from={state.Origin}&departDate={state.FlyDate}&returnDate=&adult=1&child=0&infant=0&queryType=1&roundTrip=FALSE&classOfTravel=Y&userName=Satadal", Method.GET);
var queryResult = client.Execute(request).Content;
CarouselMap CarouselResult = JsonConvert.DeserializeObject<CarouselMap>(queryResult);

if (CarouselResult.Status)
{
    // Create an attachment. Add the carousels to it.

    var activity1 = MessageFactory.Carousel(new Attachment[]
{
new HeroCard(
    title: "We are a travel agency trusted over 30 years, with 95 % positive customer reviews and A+ rating from BBB",
    images: new CardImage[] { new CardImage(url: CarouselResult.Data[0].ImageUrl.ToString())},
    buttons: new CardAction[]
    {
        new CardAction(title: "? Chat with Bot ", type: ActionTypes.ImBack, value: "Book some flight tickets"),
        new CardAction(title: "☎️ Call Us 24/7", type: ActionTypes.Call, value: "+18888898005"),
        new CardAction(title: "✈️ Search Results ", type: ActionTypes.OpenUrl, value: CarouselResult.Data[0].ApiUrl.ToString())

    })
.ToAttachment(),
new HeroCard(
    title: "We are a travel agency trusted over 30 years, with 95 % positive customer reviews and A+ rating from BBB",
    images: new CardImage[] { new CardImage(url: CarouselResult.Data[1].ImageUrl.ToString()) },
    buttons: new CardAction[]
    {
       new CardAction(title: "? Chat with Bot ", type: ActionTypes.ImBack, value: "Book some flight tickets"),
        new CardAction(title: "☎️ Call Us 24/7", type: ActionTypes.Call, value: "+18888898005"),
        new CardAction(title: "✈️ Search Results ", type: ActionTypes.OpenUrl, value: CarouselResult.Data[1].ApiUrl.ToString())
    })
.ToAttachment(),

new HeroCard(
    title: "We are a travel agency trusted over 30 years, with 95 % positive customer reviews and A+ rating from BBB",
    images: new CardImage[] { new CardImage(url: CarouselResult.Data[2].ImageUrl.ToString()) },
    buttons: new CardAction[]
    {
       new CardAction(title: "? Chat with Bot ", type: ActionTypes.ImBack, value: "Book some flight tickets"),
        new CardAction(title: "☎️ Call Us 24/7", type: ActionTypes.Call, value: "+18888898005"),
        new CardAction(title: "✈️ Search Results ", type: ActionTypes.OpenUrl, value: CarouselResult.Data[2].ApiUrl.ToString())
    })
.ToAttachment()


});
    /////Printing carousels for One way trips here.

    await stepContext.Context.SendActivityAsync(activity1, cancellationToken: cancellationToken);

Что я делаю не так?Или это проблемы с поддержкой Fb Messenger?

1 Ответ

0 голосов
/ 13 марта 2019

К сожалению, действие Call Card не поддерживается каналом Facebook.Изменение типа действия с Call на ImBack или OpenUrl для всех ваших вложений должно устранить ошибку.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...