Botkit Slackbot каждый раз выдает ошибку 401

#node.js #google-app-engine #slack-api #botkit

#node.js #google-app-engine #slack-api #боткит

Вопрос:

Я пытаюсь создать очень простой Slack-бот, используя botkit и Google App Engine, но по какой-то причине я продолжаю получать ошибки 401 каждый раз, когда отправляю сообщение боту. Странно то, что URL-адрес подписки на событие Slack (тот, который заканчивается на /api/messages ) проверяется правильно, и я получаю 200 ответов в журналах GAE и проверки в Slack.

Но всякий раз, когда я отправляю сообщение боту, он всегда получает ошибку 401 без сообщения, объясняющего ошибку вообще. Я пробовал различные комбинации приведенного ниже кода и теперь сократил его до минимума, как показано здесь . Помимо зависимостей и кода для расшифровки учетных данных (который, как я проверил, работает должным образом), на данный момент это мой полный код:

 botInit();

async function botInit () {

    const credentialsRaw = await getCredentials();
    const credentials = JSON.parse(credentialsRaw);
    const adapter = new SlackAdapter(credentials);
    
    const controller = new Botkit({
        adapter: adapter
    });
    
    controller.on('message', async(bot, message) => {
        await bot.reply(message, 'I heard a message!');
    });
}
  

Я также пробовал это для функции обмена сообщениями:

 controller.ready(() => {
    controller.hears(['hello', 'hi'], ['message', 'direct_message'],
    async (bot, message) => {
        await bot.reply(message, 'Meow. :smile_cat:')
    })
})
  

и это для настройки контроллера:

 const controller = new Botkit({
        webhook_uri: '/api/messages',
        adapter: adapter
    });
  

И все выдает ту же самую ошибку 401, несмотря на то, что все они работают с проверкой URL-адреса подписки на событие в Slack.

Ответ №1:

У меня была такая же проблема, но я разобрался с проблемой.

Я использовал секрет клиента в качестве clientSigningSecret

Но я должен использовать секрет подписи!

введите описание изображения здесь

Комментарии:

1. Спасибо, знал, что это глупая ошибка, но просто не знал, что еще попробовать!