Я пытаюсь изучить структуру бота, а также документацию и пример кода. В настоящее время у меня есть бот, который при обмене сообщениями возвращает карту героя, содержащую действие «вызвать», для входа в модуль задачи.
private Attachment GetTaskModuleHeroCard()
{
return new HeroCard()
{
Title = "Task Module Invocation from Hero Card",
Subtitle = "This is a hero card with a Task Module Action button.",
Buttons = new List<CardAction>()
{
new CardAction()
{
Type = "invoke",
Title = "Task Module Invocation from Hero Card",
Value = "{\"type\": \"task/fetch\", \"data\": \"fake data\"}"
}
},
}.ToAttachment();
}
Карта героя отлично отображается в настольном приложении обеих команд. и веб-приложение. Когда я нажимаю кнопку, запускается следующий код, который, как я полагаю, означает, что действие invoke / fetch было успешным
protected override async Task<TaskModuleResponse> OnTeamsTaskModuleFetchAsync(ITurnContext<IInvokeActivity> turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken)
{
return new TaskModuleResponse
{
Task = new TaskModuleContinueResponse
{
Value = new TaskModuleTaskInfo
{
Url = "https://[mywebapp].azurewebsites.net/",
Title = "Test",
Height = "medium",
Width = "medium",
FallbackUrl = "https://[mywebapp].azurewebsites.net/"
}
}
};
}
В этот момент открывается модальное окно с моим полем «Заголовок», но отображается Остальная часть модальной будет пустой. В консоли браузера отображается сообщение об ошибке «2020-02-10T19: 17: 48.800Z AppsService: getInstalledAppForUser - указан неверный идентификатор приложения». И в наборе приложений проекта Bot. json, и в манифесте у меня есть идентификатор приложения Microsoft для моих настроек регистрации Azure Bot Channel. Appsettings. json также содержит сгенерированный секрет. Я размещаю бота с IIS и туннелирую к нему с помощью ngrok. Конечная точка обмена сообщениями: " https: // [myngrok] .ngrok.io / api / messages ." Страница html, которую я пытаюсь создать, размещена на Azure, и я могу получить доступ к ней как на своей локальной машине, так и на других машинах. Это встроенный в YouTube iframe. Домен веб-приложения также включен в массив validDomains манифеста. Кто-нибудь видит что я делаю не так?
Заранее спасибо