LINEのメッセージ送信に必要な「チャネルアクセストークン(長期)」と、メッセージ送信先の「ユーザID」の取得方法を、初心者でも迷わずできるようにわかりやすく解説します。
関数が出てきてややハードルが高く感じますが見様見真似でできるように説明します。

この情報は、SwitchBot温湿度計で温度や湿度の異常をLINEに通知する方法で使用します。
通知機能まで設定する予定なら、あわせてチェックしておきましょう。
1. 設定に使用したもの
この記事(SwitchBotハブから室温異常をLINE通知する方法)の手順では、実際に以下の機材を使って設定を行いました。
同じ環境で試したい場合は、同じ機材をそろえるとスムーズです。
- SwitchBotハブ2(温度・湿度計測とハブ機能が1台になっている)
- スマートフォン(iOS / Android)
- SwitchBotアプリ
- LINEアカウント(通知を受け取るために必要)
- 公式LINEアカウント(通知を送信するために必要)
- Googleアカウント(GoogleAppsScriptで使用)
2. チャネルアクセストークンの取得方法
まずLINE Developersにアクセスし、LINEアカウントでログインして、新規プロバイダーを作成します

Messaging APIチャネルを作成する



公式アカウントの会社名など適当でいいので埋めていきます。
アカウント認証は個人利用のユーザで難しいので、「あとで認証を行う」を選択して2ページほど同意画面が出るので同意をしていく。

すると「LINE Official Account Manager」のページに移動します。
チャネル設定画面の「Messaging API設定」へ。

右上の「設定」ボタン→画面左の「Messaging API」を選択する


最初にLINE Developersで作成したプロバイダー名を選択する
同意画面がいくつか出るので、指示に従って同意やOKで進めていくと「Messaging API」のステータス画面に到着します

LINE Developersコンソールを押してLINE Developersコンソール画面に飛ぶ

先程の作った公式LINEアカウントのMessagingAPI設定を選択し、一番下までスクロールすると「チャネルアクセストークン(長期)」の発行ボタンがあるので発行する

この発行された「チャネルアクセストークン(長期)」をコピーしてメモしておく(個人情報のため取り扱い注意!!)
これでチャネルアクセストークン(長期)は取得できました!

Messaging API設定画面にあるQRコード(作成した公式LINE)をスマホから読み取って個人LINEと友達登録しておきましょう!
登録したら適当に一文字でいいので、個人LINEから公式LINEへ返信しておきます。(理由は公式LINEが個人LINEを認識するため?みたいな感じだったと思います。)
3. LINEユーザID(送信先)の取得方法
次はLINEのユーザIDの取得です。
LINEのユーザIDは、友だち追加したユーザにメッセージを送るために必要なIDです。
取得にはいくつか方法がありますが、私はBotから送信したイベントから取得する方法でしかID取得できなかったのでできるだけ簡単に紹介します。

簡単に言えば、作成した公式LINEに個人LINEから文字を打つと、個人LINEのユーザーIDを教えてくれるシステムを作ります。
Botから送信したイベントから取得
※この方法はプログラミングが必要なので、初心者向けにはややハードルが高いとされていますが、コピペでできるのでやってみてください(私も全くの初心者ですがなんとかなりました)
GAS(Google Apps Script)を開いて、「スクリプトを開始する」


「新しいプロジェクト」を作成画面にいくと1〜4列のfunction~と書いてあるのでこれは消します。
下の関数をコピペします。
function doPost(e) { const token = "ここにはチャネルアクセストークンを書きます"; try { const eventData = JSON.parse(e.postData.contents).events[0]; const userId = eventData.source.userId; const replyMessage = `あなたのUser_IDは${userId}です。`; const payload = { 'replyToken': eventData.replyToken, 'messages': [{ 'type': 'text', 'text': replyMessage }] }; UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', { 'payload': JSON.stringify(payload), 'method': 'POST', 'headers': {'Authorization': 'Bearer ' + token}, 'contentType': 'application/json' }); } catch(error) { Logger.log('エラー: ' + error); } }

コピペした2列目の“ここにはチャネルアクセストークンを書きます”の部分のみ最初に取得してメモしておいたチャネルアクセストークン(長期)に書き換えます。
“”は残しておいて、文章の部分のみ書き換えします。



新しいデプロイを押すと、種類選択の画面になるので、「ウェブアプリ」から
- 説明文:そのままでOK
- ウェブアプリ:自分
- アクセス:全員
に設定しデプロイする

アクセス承認の画面が出るので、承認まで進む

承認が済むと上のような画面になるので「ウェブアプリ」のURLをコピーする
「LINE Developers」に戻り、「MessagingAPI設定」→「WebhookURL」画面にいく

「編集」→「Webhook URL」に先ほどコピーしたウェブアプリのURLを貼り付けて「更新」

「Webhookの利用」にチェックを入れて「検証」
成功画面が出たらOKです!
(私は1回目は成功せず、そのまま2回目の検証を押したら成功になりました。なぜ?)

これで個人LINEから公式LINEへ文字を打つと個人LINEのIDが返答されてくるように設定ができました!
いざ試してみましょう!
Uから始まるIDがあなたのユーザIDなのでメモしておきましょう。

これで個人LINEのユーザーIDを取得することができました!
4. まとめ
- チャネルアクセストークンはLINE DevelopersのMessaging API設定画面から発行する
- ユーザIDはBotにメッセージ送信イベントを受け取って取得する
SwitchBotの温湿度計から室温異常をLINEへ通知したい初心者向け!
SwitchBotのトークン・室温度計IDをまだ取得してない方は下記の①の記事から取得しておきましょう。
SwitchBotのトークン・室温度計IDを取得済みの方は以下から通知設定完了まで行えます👇
コメント