Botkit Slackbot 每次都以 401 错误响应
Botkit Slackbot responds with 401 error every time
我正在尝试使用 botkit 和 Google App Engine 创建一个非常简单的 Slack 机器人,但出于某种原因,我每次向机器人发送消息时都会收到 401 错误。奇怪的是 Slack 事件订阅 URL(以 /api/messages 结尾的订阅)正确验证,我在 Slack 中的 GAE 日志和验证中得到 200 响应。
但是每当我实际向机器人发送消息时,它总是收到 401 错误,并且根本没有任何消息解释该错误。我尝试了以下代码的各种组合,现在已将其精简到最低限度 here。除了依赖项和解密凭据的代码(我已验证其按预期工作)之外,这是我目前的完整代码:
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
});
尽管所有这些都在 Slack 上使用事件订阅 URL 验证,但所有内容都会返回完全相同的 401 错误。
我遇到了同样的问题,但解决了问题。
我一直在使用 Client Secret 作为 clientSigningSecret
但我应该使用 Signing Secret !
我正在尝试使用 botkit 和 Google App Engine 创建一个非常简单的 Slack 机器人,但出于某种原因,我每次向机器人发送消息时都会收到 401 错误。奇怪的是 Slack 事件订阅 URL(以 /api/messages 结尾的订阅)正确验证,我在 Slack 中的 GAE 日志和验证中得到 200 响应。
但是每当我实际向机器人发送消息时,它总是收到 401 错误,并且根本没有任何消息解释该错误。我尝试了以下代码的各种组合,现在已将其精简到最低限度 here。除了依赖项和解密凭据的代码(我已验证其按预期工作)之外,这是我目前的完整代码:
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
});
尽管所有这些都在 Slack 上使用事件订阅 URL 验证,但所有内容都会返回完全相同的 401 错误。
我遇到了同样的问题,但解决了问题。
我一直在使用 Client Secret 作为 clientSigningSecret
但我应该使用 Signing Secret !