ESP8266/Slack> Slack 채널에 메시지 게시 (SSL 인증 실패 버전)
ESP-WROOM-02 ユニバーサル基板実装
ESP8266에서 Slack에 게시하려고합니다.
참고 h tp : // 쿠이타. 코 m / 키요 피코 / ms / 4c525103700f52cb2894
참고 h tp // w w. 이오 t 푹신 st. 코 m / 2016 / 3 / 4 / 에스 8266 - 아 r 즈이 노 - 푸 아테 r
참고 h tp // 냥코 추. 하테나 bぉg. 코m/엔트리/2016/08/14/144918
v0.1
code > WiFi 설정
WifiConfig.h :
자신의 액세스 포인트를 설명하는 파일.
참고: GitHub 등에 체크인하지 마십시오.
예
static const char *kSsid = "pi-31415-g";
static const char *kPass = "47voyager";
code > Slack 설정
slackConfig.h :
Slack 채널, Incoming WebHooks 등의 구성 파일.
참고: GitHub 등에 체크인하지 마십시오.
예
static const char *kSlackUrl = "/services/PIPIPI/NAPIER/3141592653589793228";
static const String kSlackChannel = "#amazon_dash";
static const String kSlackUsername = "7of9";
kSlackUrl 에는 Incoming WebHooks URL
/services/
로 시작하는 문자열을 설정한다.code > 본체
참고의 링크의 코드를 기초로 이하로 했습니다.
esp2866_161230_slack
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include "WifiConfig.h" // for [kSsid],[kPass]
#include "slackConfig.h" // for [kSlackUrl]
/*
* v0.1 Dec. 31, 2016
* Based on:
* http://qiita.com/kiyopikko/items/4c525103700f52cb2894
* http://www.iotforest.com/2016/3/4/esp8266-arduino-feather-huzzah-using-slack-integration
*
*/
static const char *kSlackHost = "hooks.slack.com";
static const int kHttpsPort = 443;
void WiFi_setup()
{
WiFi.begin(kSsid, kPass);
while( WiFi.status() != WL_CONNECTED) {
delay(500); // msec
}
Serial.println(WiFi.localIP());
}
void slack_submit()
{
WiFiClientSecure client;
// connect
if (!client.connect(kSlackHost, kHttpsPort)) {
Serial.println("slack connection failed");
} else {
Serial.println("slack connection: OK");
}
// SSL Certificate finngerprint for the host
const char* fingerprint = "ab f0 5b a9 1a e0 ae 5f ce 32 2e 7c 66 67 49 ec dd 6d 6a 38";
// verify the signature of the ssl certificate
if (client.verify(fingerprint, kSlackHost)) {
Serial.println("ssl cert matches");
} else {
Serial.println("ssl cert mismatch");
}
// submit
String message = "test from ESP8266";
String payload="payload={\"channel\": \"" + kSlackChannel + "\", \"username\": \"" + kSlackUsername
+ "\", \"text\": \"" + message + "\", \"icon_emoji\": \":ghost:\"}";
Serial.println(payload.c_str());
client.print("POST ");
client.print(kSlackUrl);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(kSlackHost);
client.println("User-Agent: ArduinoIoT/1.0");
client.println("Connection: close");
client.println("Content-Type: application/x-www-form-urlencoded;");
client.print("Content-Length: ");
client.println(payload.length());
client.println();
client.println(payload);
// リクエストを受け取る前に5秒以上は待った方がいいらしい
delay(7000);
while(client.available()) {
String line = client.readStringUntil('\r');
Serial.println(line);
}
client.stop();
}
void setup() {
Serial.begin(115200);
Serial.println(""); // to separate line
WiFi_setup();
slack_submit();
}
void loop() {
// put your main code here, to run repeatedly:
}
ESP8266을 시작하면 한 번만 Slack에 게시합니다.
결과
192.168.10.2
slack connection: OK
ssl cert mismatch
payload={"channel": "#amazon_dash", "username": "7of9", "text": "test from ESP8266", "icon_emoji": ":ghost:"}
다음과 같이 게시가 가능했습니다.
ssl cert mismatch
되고 있는 점은 내년의 과제다.
Reference
이 문제에 관하여(ESP8266/Slack> Slack 채널에 메시지 게시 (SSL 인증 실패 버전)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/59c6d12cadad5b8c500a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)