🦕

DenoでLINE Notifyを使う

2021/06/19に公開

好きな内容をLINEに通知できるサービス、LINE NotifyをDenoで使ってみます。

LINE Notifyに登録する

以下のページにLINE IDでログインします。
https://notify-bot.line.me/ja/

マイページを開きます。

ページ下部の「トークンを発行する」をクリックします。

設定モーダルが出るので、「トークン名」を入力し、送信先のトークルームを選択します。
トークン名はメッセージの最初に必ず表示されるので、短めの文字列が良さそうです。
トークルームは既存のものを選択することも出来ますが、「1:1でLINE Notifyから通知を受け取る」を選ぶと、自分とLINE Notifyだけのルームでメッセージを確認できます。
今回はこれを選んで発行します。


友達の数がバレる…

発行すると次の画面でトークンが表示されます。
以後トークンの確認は出来ないので必ずコピーしておきましょう。

完了するとマイページに連携結果が表示されます。
いくつでも作れるようなので、トークンがわからなくなったら作り直せばOKです。

LINE Notifyから通知が来ます。

APIを叩く

LINE NotifyのAPIはこちらです。

https://notify-bot.line.me/doc/ja/

https://notify-api.line.me/api/notifyPOSTで送信します。

成功すると、LINEのルームに通知が来ます。

Denoから通知する

本題です。
DenoでFetch APIを使ってLINE Notifyへメッセージを送ってみます。

トークンを含めるので、dotenvを使います。

https://deno.land/x/dotenv@v2.0.0

main.ts
import { config } from "https://deno.land/x/dotenv@v2.0.0/mod.ts";
const { LINE_ACCESS_TOKEN } = config();

const url = "https://notify-api.line.me/api/notify";

const body: URLSearchParams = new URLSearchParams({
  message: "hello from deno!",
});

const res = await fetch(url, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${LINE_ACCESS_TOKEN}`,
    "Content-Type": "application/x-www-form-urlencoded",
  },
  body,
});

const json = await res.json();
console.log(json);
.env
LINE_ACCESS_TOKEN=token1234

実行します。.envを読み込む権限が必要です。

❯ deno run --allow-net --allow-env --allow-read main.ts
{"status":200,"message":"ok"}

ひとこと

めっちゃ簡単にLINE通知を作れました。
自分用に色々使えそうです。

今回のリポジトリはこちら。
https://github.com/kawarimidoll/deno-dev-playground

参考

https://qiita.com/iitenkida7/items/576a8226ba6584864d95

Discussion