Эта ошибка возникает из-за того, что боткит нуждается в некоторой форме хранилища, где он может хранить все команды (каналы и пользователи тоже) и извлекать его позже.
Итак, когда ваш метод handleWebhookPayload
выполняется, он вызывает другой метод с именем findAppropriateTeam
, который будет запрашивать указанную командную запись в предоставленном вами хранилище (это может быть mongoDB или файл JSON или другой),Ошибка говорит о том, что у вас нет записи в хранилище с предоставленным идентификатором.
Так что это может подразумевать две вещи:
- Вы не предоставили хранилище для боткита дляработа
- Вы не сохранили идентификатор команды в хранилище
Решение первой проблемы довольно простое.Вам просто нужно установить mongodb на вашем компьютере, а затем перейти к боткиту MONGO_URL.
ПРИМЕЧАНИЕ.хранилище не сохраняет записи.
const controller = botkit.slackbot({
storage: 'mongodb//localhost:27017:/yourdb',
})
//OR
const controller = botkit.slackbot({
storage: process.env.MONGO_URL,
})
Возможное решение второй проблемы:
Я предполагаю, что вы используете botkit локально, поэтому вы должны использовать какой-то туннель, такой как ngrok или localtunnel,В этом случае убедитесь, что:
- Вы предоставили URL перенаправления Slack (например, https://your_url/oauth)
- Вы открыли страницу https://your_url/login
Botkit сохраняет идентификатор вашей команды в предоставленном хранилище при доступе к маршруту / login и авторизует приложение. Поэтому, если вы пропустили эту часть, то botkit не сохранит идентификатор вашей команды, поэтому при получении событий позже будет выдано сообщение об ошибке.вкл.
Отметьте это, как [https://github.com/howdyai/botkit/issues/938], на предмет разногласий по теме
Надеюсь, это поможет!