botkit 中的交互消息
Interactive messages in botkit
我目前在 IBM 云上托管 Slackbot。一切正常,直到我想添加交互式消息。
这是文档的一部分
为了使用交互式消息,您的机器人必须注册为 Slack 应用程序,并且必须使用 Slack 按钮身份验证系统。要接收回调,请将回调 url 注册为应用程序配置的一部分。 Botkit 对 Slack Button 系统的内置支持支持 url https://_your_server_/slack/receive 处的交互式消息回调 请注意,Slack 要求此 url 使用 https 进行保护。
所以我了解到 BOTKIT 创建了一个我可以使用的请求 URL。
在这种情况下 https://_my_ibm_cloud_url_/slack/receive
不过这当然不行,不然我也不会来了:)
有人有想法吗?
这是目前的设置方式。
server.js
require('dotenv').load();
var express = require('express');
var bodyParser = require('body-parser');
var verify = require('./security');
var app = express();
app.use(bodyParser.json({
verify: verify
}));
var port = process.env.PORT || 5000;
app.set('port', port);
require('./app')(app);
// Listen on the specified port
app.listen(port, function() {
console.log('Client server listening on port ' + port);
});
app.js
require('dotenv').load();
var middleware = require('botkit-middleware-watson')({
iam_apikey: process.env.ASSISTANT_IAM_APIKEY,
workspace_id: process.env.WORKSPACE_ID,
url: process.env.ASSISTANT_URL || 'https://gateway.watsonplatform.net/assistant/api',
version: '2018-07-10'
});
module.exports = function(app) {
if (process.env.USE_SLACK) {
console.log('test')
var Slack = require('./bot-slack');
Slack.controller.middleware.receive.use(middleware.receive);
Slack.bot.startRTM();
console.log('Slack bot is live');
}
bot-slack.js
var Botkit = require('botkit');
var controller = Botkit.slackbot();
controller.configureSlackApp({
clientId: process.env.SLACK_CLIENTID,
clientSecret: process.env.SLACK_CLIENT_SECRET,
});
var bot = controller.spawn({
token: process.env.SLACK_TOKEN
});
controller.hears(['.*'], ['direct_message', 'direct_mention', 'mention'], function(bot, message) {
bot.replies....
});
module.exports.controller = controller;
module.exports.bot = bot;
您似乎没有调用 configureIncomingWebhook 方法来创建实际的 webhook 端点。请参阅以下文档:
https://botkit.ai/docs/readme-slack.html#botconfigureincomingwebhook
我目前在 IBM 云上托管 Slackbot。一切正常,直到我想添加交互式消息。
这是文档的一部分
为了使用交互式消息,您的机器人必须注册为 Slack 应用程序,并且必须使用 Slack 按钮身份验证系统。要接收回调,请将回调 url 注册为应用程序配置的一部分。 Botkit 对 Slack Button 系统的内置支持支持 url https://_your_server_/slack/receive 处的交互式消息回调 请注意,Slack 要求此 url 使用 https 进行保护。
所以我了解到 BOTKIT 创建了一个我可以使用的请求 URL。 在这种情况下 https://_my_ibm_cloud_url_/slack/receive
不过这当然不行,不然我也不会来了:)
有人有想法吗?
这是目前的设置方式。
server.js
require('dotenv').load();
var express = require('express');
var bodyParser = require('body-parser');
var verify = require('./security');
var app = express();
app.use(bodyParser.json({
verify: verify
}));
var port = process.env.PORT || 5000;
app.set('port', port);
require('./app')(app);
// Listen on the specified port
app.listen(port, function() {
console.log('Client server listening on port ' + port);
});
app.js
require('dotenv').load();
var middleware = require('botkit-middleware-watson')({
iam_apikey: process.env.ASSISTANT_IAM_APIKEY,
workspace_id: process.env.WORKSPACE_ID,
url: process.env.ASSISTANT_URL || 'https://gateway.watsonplatform.net/assistant/api',
version: '2018-07-10'
});
module.exports = function(app) {
if (process.env.USE_SLACK) {
console.log('test')
var Slack = require('./bot-slack');
Slack.controller.middleware.receive.use(middleware.receive);
Slack.bot.startRTM();
console.log('Slack bot is live');
}
bot-slack.js
var Botkit = require('botkit');
var controller = Botkit.slackbot();
controller.configureSlackApp({
clientId: process.env.SLACK_CLIENTID,
clientSecret: process.env.SLACK_CLIENT_SECRET,
});
var bot = controller.spawn({
token: process.env.SLACK_TOKEN
});
controller.hears(['.*'], ['direct_message', 'direct_mention', 'mention'], function(bot, message) {
bot.replies....
});
module.exports.controller = controller;
module.exports.bot = bot;
您似乎没有调用 configureIncomingWebhook 方法来创建实际的 webhook 端点。请参阅以下文档:
https://botkit.ai/docs/readme-slack.html#botconfigureincomingwebhook