Подключение существующих ботов Slack RTM к новой серверной части платформы ботов Microsoft после обновления

Извините, это длинновато.

У меня 2 версии моего бота:

Версия 1.0 - основана на бэкэнде Slack RTM. Это установили несколько сотен пользователей.

Версия 2.0 - на основе серверной части Microsoft Bot Framework (BF). несколько десятков пользователей установили эту версию с момента выпуска несколько дней назад.

Я обновил приложение My Slack до версии 2.0, чтобы использовать серверную часть Bot Framework вместо RTM, получил одобрение от Slack, и теперь все новые пользователи устанавливают версию 2.0 из магазина ботов Slack. Все хорошо, как и ожидалось.

Но как только новая версия приложения 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 () дает мне исключение:

Авторизация для Microsoft App ID 122dd7ca-xxxxx-xxxx-b679-c696e212987a завершилась неудачно с кодом состояния Запрещено

Есть ли другой способ принудительно установить соединение с BF без переустановки пользователями новой версии того же бота?

Заранее спасибо.


person gabics    schedule 06.01.2017    source источник


Ответы (1)


Когда пользователи нажимают кнопку «Добавить в Slack», запускается поток oauth, где пользователь предоставляет боту разрешение своей команде Slack и получает токен, который бот использует для подключения к Slack. В настоящее время нет возможности передать этот токен от одного бота к другому, поэтому вам нужно будет заставить пользователей вашего бота V1 повторно запустить поток OAuth «Добавить в Slack», чтобы переключиться на V2.

person Craig Jensen    schedule 09.01.2017