oauth - 由于“誓言授权 url 不匹配”,在 Slack 中安装 Dialogflow 机器人失败
问题描述
我有一个简单的 Dialogflowbot,正在尝试与我的 Slack 工作区集成。
- 我为机器人制作了一个 Slack 应用程序。
- 我已经在 Dialogflow 集成对话框中添加了所有信息。
- 在 Slack 应用程序方面,我设置了机器人用户,添加了事件订阅(包括来自 DF 的链接)并设置了 OAuth 范围并添加了 URL。
但是,机器人不会回复。DF 日志中的一切看起来都很好,但我在 Slack 中没有得到响应。以前,我可以通过单击“管理分发”选项卡下的“安装到 Slack”按钮来解决这种情况。但是,现在当我这样做(并允许安装)时,我收到以下错误消息:
While starting bot the error appears:
Bot start error: oauth_authorization_url_mismatch
从 Slack 文档中,我发现这意味着“OAuth 流程是在不正确的授权 url 版本上启动的。流程必须通过 /oauth/authorize 启动。” 但是,Dialogflow 提供的 OAuth URL 格式为bots.dialogflow.com/slack/<TOKEN>/start
.
我有
- 联系了 Slack 和 Dialogflow 支持
- 完成了一堆谷歌搜索和
- 问了几个也在 Slack 机器人上工作的人
但我什么也没找到。也许这里有人会遇到同样的问题会知道该怎么做?
解决方案
最近,Slack 团队通过向后不兼容的更改对 oauth 身份验证进行了更改。此更改破坏了与 Dialogflow 的集成。
幸运的是,旧功能尚未从 Slack 中完全删除。在我上面分享的链接(这里又是)中,在文档的底部有一个“创建经典的 Slack 应用程序”选项。如果单击它,您将能够创建一个“旧版”机器人并按照Dialogflow-Slack 集成指南使用;它会按预期工作。
需要注意的重要一点是,您将看到“更新范围”的选项。请注意不要进行此更新,因为这会将身份验证从经典方法更改为新方法,并且会破坏机器人。
最后,Dialogflow 团队已经知道这个问题,他们正在努力使集成与新的 Slack 身份验证兼容。您可以订阅该问题跟踪器(单击标题旁边的星号)并获取有关其进度的更新。
推荐阅读
- java - 如何在java中读取属性文件,该文件在键值对中具有值
- java - 如何在Android中添加向firebase添加数据的进度对话框?
- javascript - 使用输入的数据属性为php post生成多维数组
- ansible - Ansible - pip not found
- css - How to set border radius for color tag's color picker?
- python - Python equivalence for this c++ program
- javascript - Spinner 不在 onEndReachedThreshold Flatlist 中工作
- laravel - laravel 创建多个会话
- javascript - Jquery Button functionality not working when using onload event
- javascript - 在 IE 和 Edge 中发出的 XHR 请求是否存在已取消状态?