У меня есть бот, созданный в framework v4 с использованием c#. Я использую адаптивную карту в качестве приветственного сообщения в моем боте, а также карту для получения обратной связи от пользователя, в эмуляторе она работает нормально, но когда бот интегрирован с Slack, приветственная карта не появляется и, более того, карта обратной связи не отображается его правильный взгляд вялый, а не в виде изображения. Кто-нибудь знает причину? Даже проблема не возникает при интеграции его с любым другим каналом. У слабого канала есть какие-то ограничения? Я также прилагаю изображение, которое я получаю в расслабленном состоянии без приветственной карты.
Welcome.cs
public class Welcomeuser : DialogBot<MainDialog>
{
protected readonly string[] _cards =
{
Path.Combine(".", "Resources", "WelcomeCard.json"),
};
public Welcomeuser(ConversationState conversationState, UserState userState,
MainDialog dialog, ILogger<DialogBot<MainDialog>> logger, IConfiguration configuration, IHttpClientFactory httpClientFactory)
: base(conversationState, userState, dialog, logger, configuration, httpClientFactory)
{
}
protected override async Task OnMembersAddedAsync(IList<ChannelAccount>
membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
{
await SendWelcomeMessageAsync(turnContext, cancellationToken);
Random r = new Random();
var cardAttachment = CreateAdaptiveCardAttachment(_cards[r.Next(_cards.Length)]);
await turnContext.SendActivityAsync(MessageFactory.Attachment(cardAttachment), cancellationToken);
}
private static Attachment CreateAdaptiveCardAttachment(string filePath)
{
var adaptiveCardJson = File.ReadAllText(filePath);
var adaptiveCardAttachment = new Attachment()
{
ContentType = "application/vnd.microsoft.card.adaptive",
Content = JsonConvert.DeserializeObject(adaptiveCardJson),
};
return adaptiveCardAttachment;
}
private static async Task SendWelcomeMessageAsync(ITurnContext turnContext, CancellationToken cancellationToken)
{
foreach (var member in turnContext.Activity.MembersAdded)
{
if (member.Id != turnContext.Activity.Recipient.Id)
{
if (DateTime.Now.Hour < 12)
{
await turnContext.SendActivityAsync($"Hi,Good Morning {member.Name}", cancellationToken: cancellationToken);
}
else if (DateTime.Now.Hour < 17)
{
await turnContext.SendActivityAsync($"Hi,Good Afternoon {member.Name}", cancellationToken: cancellationToken);
}
else
{
await turnContext.SendActivityAsync($"Hi,Good Evening {member.Name}", cancellationToken: cancellationToken);
}
}
}
}
}