【发布时间】:2020-07-08 08:42:01
【问题描述】:
我正在使用 Microsoft Bot Framework 开发一个机器人。我正在尝试在 Slack 上启动并运行它,但被有关交互式按钮的问题所阻止。在瀑布对话框流中,我正在创建如下所示的选择提示
private async Task<DialogTurnResult> IdentifyUserTypeAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
var message = "Please select what kind of user you are"
userTypes = await userTypeRepository.GetAllUserTypesAsync();
var options = new PromptOptions
{
Prompt = MessageFactory.Text(message),
Choices = ChoiceFactory.ToChoices(userTypes.Select(x => x.UserType.ToString()).ToList()),
Style = ListStyle.HeroCard,
};
await state.ConversationState.SaveChangesAsync(stepContext.Context);
return await stepContext.PromptAsync(UserTypeDialogId, options);
}
在 Slack 应用上,按钮正确呈现,如下图所示。
但是,当我单击按钮时,什么也没有发生。我看到本地 slack 客户端上的请求实际上调用了我的 slack 应用程序,并返回 200。
我已按照本教程使用 ABS 设置 Slack 应用程序: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-slack?view=azure-bot-service-4.0&tabs=abs
在 slack 应用上我有以下配置
重定向网址:
范围:
事件已启用,我已添加请求 URL。黑色部分是我的机器人句柄,取自 ABS
我已订阅以下 Bot 事件
机器人配置为始终在线:
最后,我启用了交互性,并添加了请求 URL,这似乎被 Slack 应用程序正确验证了。
我错过了什么吗?我曾多次尝试重新开始,但最终遇到了同样的情况,按钮似乎没有在我的机器人代码上触发任何内容。 Bot 的网络服务器根本没有传入请求。
【问题讨论】:
-
似乎,根据 Github 上问题中的答案,某些已弃用的 API 可能会导致问题
-
我的回答可以接受吗?
标签: c# botframework slack-api