Я развертываю свой код 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?