【初心者向け】LINEチャネルアクセストークンとユーザIDの取得方法

【初心者向け】LINEチャネルアクセストークンとユーザIDの取得方法 見守りグッズ
【初心者向け】LINEチャネルアクセストークンとユーザIDの取得方法
記事内に広告が含まれている場合があります。

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

関数が出てきてややハードルが高く感じますが見様見真似でできるように説明します。

この情報は、SwitchBot温湿度計で温度や湿度の異常をLINEに通知する方法で使用します。

通知機能まで設定する予定なら、あわせてチェックしておきましょう。

1. 設定に使用したもの

この記事(SwitchBotハブから室温異常をLINE通知する方法)の手順では、実際に以下の機材を使って設定を行いました。

同じ環境で試したい場合は、同じ機材をそろえるとスムーズです。

  • SwitchBotハブ2(温度・湿度計測とハブ機能が1台になっている)
  • スマートフォン(iOS / Android)
  • SwitchBotアプリ
  • LINEアカウント(通知を受け取るために必要)
  • 公式LINEアカウント(通知を送信するために必要)
  • Googleアカウント(GoogleAppsScriptで使用)
SwitchBot
SwitchBot
開発元:wonderlabs, Incorporated
無料
posted withアプリーチ

2. チャネルアクセストークンの取得方法

まずLINE Developersにアクセスし、LINEアカウントでログインして、新規プロバイダーを作成します

プロバイダーを作成

Messaging APIチャネルを作成する

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にメッセージ送信イベントを受け取って取得する

関連記事

コメント

タイトルとURLをコピーしました