【问题标题】:Slackbot not able to pick up messagesSlackbot 无法接收消息
【发布时间】:2020-12-01 17:05:30
【问题描述】:

我正在尝试创建一个简单的 slackbot,我可以让它在启动时运行以及几乎其他任何东西,但它不会接收来自任何频道的传入消息。它不会产生任何错误,这让人非常沮丧。

到目前为止我尝试过的事情:

  1. 将机器人添加到频道
  2. 消息块内的控制台日志记录
  3. 添加捕获

无论我做什么,机器人似乎都完全忽略了提示“on.message”。我不明白。我的代码如下。

require("dotenv").config();
const { WebClient } = require("@slack/web-api");
const { createEventAdapter } = require("@slack/events-api");
const slackEvents = createEventAdapter(process.env.SLACK_SIGNING_SECRET);
const { RTMClient } = require("@slack/rtm-api");
const axios = require('axios')
const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const express = require("express");
const bodyParser = require("body-parser");
const pool = require("./pool");
const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static("build"));

let config = {
  headers: {
    "X-Auth-Client": process.env.BG_AUTH_CLIENT,
    "X-Auth-Token": process.env.BG_AUTH_TOKEN,
  },
};
  const PORT = process.env.PORT || 5000;
  app.listen(PORT, () => {
    console.log("server running on: ", PORT);
  });
const token = process.env.SLACK_TOKEN;

const web = new WebClient(token);

const conversationId = "C0139RJPUEM";

// The client is initialized and then started to get an active connection to the platform
const rtm = new RTMClient(token);



slackEvents.on('error', console.error);

slackEvents.start().then(() => {
    (async () => {
      const res = await web.chat.postMessage({
        icon_emoji: ":email:",
        channel: conversationId,
        text: "Testing connection",
      });

    message
      console.log("Message sent: ", res.ts);
    })();
    console.log("bot listening on port", PORT);
});

    slackEvents.on("message", (event) => {
      console.log(
        `Received a message event: user ${event.user} in channel ${event.channel} says ${event.text}`
      );
      (async () => {
        // See: https://api.slack.com/methods/chat.postMessage
        const res = await web.chat.postMessage({
          icon_emoji: ":email:",
          channel: conversationId,
          text: "Testing message",
        });

        // `res` contains information about the posted message
        console.log("Message sent: ", res.ts);
      })();
      // }
    });

【问题讨论】:

    标签: api slack slack-api


    【解决方案1】:

    我想我明白了,我使用的库不兼容,而且我没有设置 API 事件订阅和其他一些愚蠢的事情。那好吧。希望这会帮助可能偶然遇到此问题的人。

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多