#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. Спасибо, знал, что это глупая ошибка, но просто не знал, что еще попробовать!