Проблема заключается в создании приложения Bot через Bot Framework с использованием .Net Core.В .Net Framework я использовал API для создания приложения для ботов.При первоначальном методе я передаю строковый параметр и получаю это значение из IFrame Url, но в .Net Core я использую метод OnTurnAsync и не могу переопределить этот метод для передачи строкового параметра как «userName».Я делюсь между .Net core и .Net framework начальными методами ниже.
Я вызываю приложение бота через IFrame, например;https://webchat.botframework.com/...&userName=test' style = "width: 600px; высота: 600px;">
Так как я могу передать параметр в метод OnTurnAsync?
.Net Framework
public async Task<HttpResponseMessage> Post([FromBody]Activity activity, string userName)
{
if (activity.Type == ActivityTypes.Message)
{
var keyword = activity.Text.ToLower().ToEnglish();
var responseAttachment = KeywordHelper.GetAttachmentResult(keyword);
if (responseAttachment != null)
{
var answer = ((HeroCard)responseAttachment.Content).Title.ToString();
conversation.Response = answer;
this.conversationService.InsertToConversation(conversation);
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
var reply = activity.CreateReply();
reply.Attachments.Add(responseAttachment);
await connector.Conversations.ReplyToActivityAsync(reply);
activity.Type = ActivityTypes.Message;
}
}
}
.Net Core
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
if (turnContext.Activity.Type == ActivityTypes.Message)
{
var userName = "userName";
var keyword = turnContext.Activity.Text.ToLower().ToEnglish();
var responseAttachment = KeywordHelper.GetAttachmentResult(keyword);
if (responseAttachment != null)
{
var answer = ((HeroCard)responseAttachment.Content).Title.ToString();
conversation.Response = answer;
this.conversationService.InsertToConversation(conversation);
var connector = new ConnectorClient(new Uri(turnContext.Activity.ServiceUrl));
var reply = turnContext.Activity.CreateReply();
}
}
}