はじめに
手軽にLINEへPush通知を行えるLINE Notifyのハンズオン記事です。
APIの実行方法はcurl、Node.js、Arduinoの3通りの方法を紹介します。
ハンズオン
トークン発行とAPI実行の2つのステップで進めていきます。
トークン発行
LINE Notifyページへアクセスし画面右上の「ログイン」をクリックし、ログインします。
(QRコードログインが楽です)
ログイン後にアカウント名をクリックし、表示されるメニューより「マイページ」を選択します。
マイページ下部の「アクセストークンの発行」より「トークンを発行する」ボタンをクリックします。
「トークンを発行する」ウィンドウが表示されるので、任意のトークン名を入力し、通知を送信するトークルームにて「1:1でLINE Notifyから通知を受け取る」を選択し、「発行する」ボタンをクリックします。
複数のメンバーがいるトークルームを選択することもできます。
トークンが発行されるのでコピーします。
トークンはこのタイミングでしか確認できないので、しっかりとコピーしてください。
APIの実行
curl
以下のcurlコマンドの をLINE Notifyトークンに書き換えて実行するとLINEへ通知が飛びます。
$ curl -X POST -H "Authorization: Bearer <token>" -F "message=Hello Notify!" https://notify-api.line.me/api/notify
{"status":200,"message":"ok"}
Node.js
Node.js v18以上の環境を使用してください。
以下のソース1行目のをLINE Notifyトークンに書き換え、line-notify.mjs
というファイル名で保存します。
const TOKEN = "<token>"
const notify = async (token, message) => {
const URL = "https://notify-api.line.me/api/notify"
const response = await fetch(URL, {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "Bearer " + token,
},
body: "message=" + message,
})
const data = await response.json()
console.log(data)
}
notify(TOKEN, "Hello Notify!")
そして以下のコマンドを実行するとLINEへ通知が飛びます。
node line-notify.mjs
Arduino
M5StackやESP32といったWi-Fi付きのマイコンを使用してください。
SSID
、PASSWORD
をデバイスが接続するWi-Fi APのものに変更し、TOKEN
をLINE Notifyトークンに書き換えてスケッチをデバイスへ書き込みます。
スケッチ書き込み後、デバイスが電源オンになるとLINEへ通知が飛びます。
#include <HTTPClient.h>
const char* SSID = "<Wi-Fi SSID>";
const char* PASSWORD = "<Wi-Fi Password>";
const char* TOKEN = "<token>";
void connectWiFi() {
Serial.print("WiFi connecting.");
WiFi.begin(SSID, PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(100);
}
}
void notify(const String token, const String message) {
const String URL = "https://notify-api.line.me/api/notify";
HTTPClient http;
http.begin(URL);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
http.addHeader("Authorization", "Bearer " + token);
http.POST("message=" + message);
Serial.println(http.getString());
http.end();
}
void setup() {
Serial.begin(115200);
connectWiFi();
notify(TOKEN, "Hello Notify!");
}
void loop() {
}
LINE Notifyハンズオンは以上です。
お疲れ様でした🎊