почему CLIENT_EVENTS не работают RTM не определен в моем слабом боте? - PullRequest
0 голосов
/ 15 ноября 2018

Я только начал разрабатывать сервис для Slack, и я просто создаю соединение с ботом Slack, но у меня возникла проблема, что

Невозможно прочитать свойство 'RTM' из неопределенного

это мой код

const { RTMClient, CLIENT_EVENTS, RTM_EVENTS, RTM_MESSAGE_SUBTYPES } = require('@slack/client');

function handleOnAuthenticated(rtmStartData) {
    console.log(`logged in as ${rtmStartData.self.name} of team ${rtmStartData.self.team.name} but not et connected to channel`);
}

function addAuthenticatedHandler(rtm, handler) {
    rtm.on(CLIENT_EVENTS.RTM.AUTHENTICATED, handler);
}

module.exports.init = function slackClient(bot_token, logLevel) {
    rtm = new RTMClient(bot_token);
    addAuthenticatedHandler(rtm, handleOnAuthenticated);
    return rtm;
}

module.exports.addAuthenticatedHandler = addAuthenticatedHandler;

Я не знаю, в чем именно проблема, может кто-нибудь сказать мне, почему это происходит.

1 Ответ

0 голосов
/ 05 февраля 2019

Словарь RTM_EVENTS не обязателен, вам просто нужно напрямую подписаться на имя события в виде строки.

Преобразование:

function addAuthenticatedHandler(rtm, handler) {
rtm.on(CLIENT_EVENTS.RTM.AUTHENTICATED, handler);
}

константами является V3.x, которые были удалены из V4.x

Кому:

function addAuthenticatedHandler(rtm, handler) {
rtm.on('authenticated', handler);
}

Использование простых строк для имен событий - V4.x

руководство по миграции

...