使用Incoming Webhooks 和 ESP8266 NodeMCU 向Slack频道发送消息

Slack是一种消息服务,允许与团队成员进行通信。Slack 允许创建频道,团队成员可以在其中发送消息和共享文件。Incoming Webhooks 是将消息从自定义应用程序发送到 Slack 通道的方法之一。

本教程展示了如何使用 Incoming Webhooks 和 ESP8266 NodeMCU 开发板向 Slack 频道发送消息。

Components

NOComponents数量
1.ESP8266 NodeMCU + Micro USB 数据线1个

Incoming Webhooks 集成

为了使用 Incoming Webhooks,我们需要创建一个 Slack 应用程序。按着这些次序:

  1. 登录Slack并创建一个应用程序。
  2. 提供应用程序名称并选择要与该应用程序关联的工作区。单击“创建应用程序”。
  3. 在“添加特性和功能”部分下,单击“Incoming Webhooks”。
  4. 在下一个屏幕中,打开开关以激活 Incoming Webhooks。
  5. 然后会出现额外的选项。单击“将新 Webhook 添加到工作区”。
  6. 在新屏幕中,选择一个频道并单击“允许”。您将被重定向回 Incoming Webhooks 设置。
ESP8266 NodeMCU 的传入 Webhook URL
  1. 您可以看到如下所示的 Webhook URL:
https://hooks.slack.com/services/TXXXXXXXXXX/BXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX
  1. 复制 Webhook URL。它将用于将消息发送到在设置中选择的频道。在这种情况下,general频道已被选中。

获取 SSL 证书的指纹

为了使用 HTTPS 协议从 ESP8266 NodeMCU 向服务器发送 GET 请求,我们需要获取 SSL 证书的指纹。如果您使用 Chrome 浏览器,请按照以下步骤操作:

  1. 打开浏览器并输入Slack 网站的 URL 地址。
  2. 单击地址栏中的锁定图标,然后选择“证书”选项。
获取 ESP8266 NodeMCU 的 Slack 站点指纹(第 1 步)
  1. 在新窗口中,选择“详细信息”选项卡并在列表中找到“指纹”字段。复制指纹。它将在代码中使用。
获取 ESP8266 NodeMCU 的 Slack 站点指纹(第 2 步)

注意:证书到期时应更新指纹。

代码

我们定义常量来存储 Wi-Fi 网络 SSID 和密码、Webhook URL 和 SSL 证书的指纹。

在该setup函数中,串行通信被初始化。我们设置站 (STA) 模式以连接到 Wi-Fi 网络。

loop函数中,我们生成从 1 到 100(含)的随机数。使用 POST 请求以 JSON 格式发送到 Slack 通道的消息。

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char *WIFI_SSID = "YOUR WIFI NETWORK NAME";
const char *WIFI_PASSWORD = "YOUR WIFI PASSWORD";

const char *URL = "https://hooks.slack.com/services/XX/XX/XX";
const char *FINGERPRINT = "71f8c380fe88b8ab308b3fe15eb8f6769878cc30";

WiFiClientSecure client;
HTTPClient httpsClient;

void setup()
{
    Serial.begin(9600);

    WiFi.mode(WIFI_STA);

    WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.println("Connected");

    client.setFingerprint(FINGERPRINT);
}

void loop()
{
    int value = random(1, 101);
    String data = "{"text":"" + String(value) + ""}";

    httpsClient.begin(client, URL);
    httpsClient.addHeader("Content-Type", "application/json");
    httpsClient.POST(data);
    httpsClient.end();

    delay(5000);
}

测试

打开 Slack 频道以查看 ESP8266 NodeMCU 开发板发布的消息。

ESP8266 NodeMCU 发布到 Slack Channel 的消息

原文链接:https://lindevs.com/send-message-to-slack-channel-using-incoming-webhooks-and-esp8266-nodemcu

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/im/17528.html

(0)

相关推荐

发表回复

登录后才能评论