たくさんの自由帳

始業式オンラインの予定だったのになんで中止になったの?

LINE Messaging API

を使うことで、LINE公式アカウント(LINE Bot)を作成できます。
一ヶ月1000通までは無料で、プッシュ通知も利用できます(つよい)。

今回やること

Node.jsからLINE公式アカウントと友達になっている人全員に送信するやつを作成。(ブロードキャストメッセージ)
今回はこっち(Node.js側)からメッセージを送信できれば完成ってことで

Messaging API 登録

(LINEのログインとか開発者登録は済ませておいて)
ドキュメントに登録のやり方あります:https://developers.line.biz/ja/docs/messaging-api/getting-started/#using-console

https://developers.line.biz/ja/services/messaging-api/
を開いて、今すぐはじめようを選びます。

Imgur

なんか英語なんだけど?

右下のところから日本語選べます。

Imgur

プロバイダー

まあ開発者の名前とか入れておけばいいんじゃないですかね。
ドキュメントによるとこの項目は表示されないそうです。

Imgur

チャンネル名、説明文

名前ですね。

ドキュメントによると名前はユーザーに表示されるそうです。(まあ当たり前)
説明はLINE Botを作る分には表示されない模様。

Imgur

チャンネルアイコン

めんどいので飛ばします。任意ですので

職種

適当に

Imgur

あとはメアドとかを入力して同意すれば作成できます。

(ちなみにスクショのまんま作ると名前が予約済みでなんとかって言われて怒られる)

友達登録

チャンネル基本設定のとなりにあるMessaging API設定を選ぶと、QRコードが表示されてるので、
Googleレンズなり、LINEのQRコード読み取りなんかで友達登録をしてください。

アクセストークンを生成する

Messaging API設定の一番下に、チャンネルアクセストークンってのが有るので、そこで発行してください。
他の人に教えちゃだめなやつです。

Imgur

Node.jsから叩く

Node.jsの環境を揃えます。適当なフォルダを開いて、ターミナルを開き以下を実行

npm init -y

ライブラリを入れます

npm install @line/bot-sdk --save

そしたら、次のJSを書いていきましょう。srcフォルダを作ってindex.jsって名前をつけてコピペして

// NodeJS用 LINE SDK
const line = require('@line/bot-sdk');

// アクセストークン
const client = new line.Client({
    channelAccessToken: '生成したアクセストークン'
})

// 全員に送信するやつ
client.broadcast(
    // 送信内容
    {
        type: 'text',
        text: 'Hello World'
    }
).then(res => console.log('Ok'))

最後に実行

node src/index.js

これは友達になっている人全てに送信されるやつですね。ドキュメントではブロードキャストメッセージって言ってるやつ。

おわりに

OSの壁を超えてプッシュ通知できるのは強いと思った