升级后将现有的 Slack RTM 机器人连接到新的 Microsoft 机器人框架后端

Connecting existing Slack RTM bots to new Microsoft bot framework back end after upgrade

抱歉,这有点长。

我有两个版本的机器人:

版本 1.0 - 基于 Slack RTM 后端。有几百个用户安装了这个。

2.0 版 - 基于 Microsoft Bot Framework(BF) 后端。自几天前发布以来,已有几十个用户安装了这个版本。

我已将 My Slack 应用程序升级到 v2.0 以使用 Bot Framework 后端而不是 RTM,已获得 Slack 的批准,现在所有新用户都从 Slack 机器人商店安装 2.0 版。一切顺利。

但是一旦发布了新版本的 slack 应用程序——我希望 Slack 断开与旧 RTM 后端的连接并连接到新的 BF 后端。这并没有发生,我的几百个用户仍在使用旧的 RTM 后端。

联系了 Slack 支持 - 他们告诉我这不能自动完成,我需要为来自 BF 服务的已验证令牌启动连接。我怎样才能做到这一点?

我试图从其中一个团队获取信息并尝试使用以下代码发送消息:

        var connector = new ConnectorClient(new Uri("https://slack.botframework.com/"));
        var conversation = new ConversationAccount(true, "B0JMAJ8C8:T0ANH2CG3:C0ANKNHU5");
        var botAccount = new ChannelAccount("B0JMAJ8C8:T0ANH2CG3", "Grasp");
        IMessageActivity message = Activity.CreateMessageActivity();
        message.From = botAccount;
        message.Conversation = conversation;
        message.ChannelId = "slack";
        message.Text = "Upgrade Test!";
        message.Locale = "en-En";
        connector.Conversations.SendToConversation((Activity)message);

但是 SendToConversation() 给了我一个例外:

Authorization for Microsoft App ID 122dd7ca-xxxxx-xxxx-b679-c696e212987a failed with status code Forbidden

有没有其他方法可以在我的用户不重新安装同一机器人的新版本的情况下强制从 BF 建立连接?

提前致谢。

当用户单击 "Add To Slack" 按钮时,会启动一个 oauth 流程,用户在其中向其 Slack 团队授予机器人权限,并收到机器人用于连接到 Slack 的令牌。目前无法将该令牌从一个机器人转移到另一个机器人,因此您需要让 V1 机器人上的用户重新运行 "Add to Slack" oauth 流程以切换到 V2。