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

对不起,这有点长 .

我有2个版本的机器人:

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

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

我已将My Slack应用程序升级到v2.0以使用Bot Framework后端而不是RTM,获得Slack的批准,现在所有新用户都从slack bot商店安装2.0版本 . 一切都如期待的好 .

但是一旦发布了新版本的松弛应用程序 - 我希望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()给了我一个例外:

Microsoft App ID 122dd7ca-xxxxx-xxxx-b679-c696e212987a的授权失败,状态码为Forbidden

有没有其他方法我可以强制连接从BF没有我的用户重新安装同一个机器人的新版本?

提前致谢 .

回答(1)

2 years ago

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