n8nでLINEに通知を送るワークフローを作る際、LINEのユーザーIDが必要になることがあります。
たとえば、特定のユーザーにだけLINE通知を送りたい場合や、ユーザーごとのアクション履歴を管理したい場合などに、このユーザーIDが必要になります。
※ユーザーIDは、友達追加時に使うLINE IDとは別のものです
LINEアプリ上ではユーザーIDを直接確認できません。
けれど、n8nのWebhookを使えば簡単に取得できます(ワークフローは以下)。
この記事では、n8nを使ってLINEのユーザーIDを取得する方法をわかりやすく解説します。
とてもシンプルなワークフローなので、数分で完了するはずです。
LINEのユーザーIDを調べたい方は、ぜひ参考にしてください!
STEP⓪ 事前準備
LINEのユーザーIDをn8nで取得するには、以下の3つを事前に用意しておく必要があります。
- ユーザーIDを取得したいLINEアカウント
- LINE公式アカウント
- 外部からアクセス可能なn8n
LINE公式アカウントはLINE Messaging APIの設定が必要
LINEのユーザーIDを取得するには
「ユーザーIDを取得したいLINEアカウント」
から
「LINE公式アカウント」
へアクション(友達追加・メッセージ送信など)が発生することが条件です。
このやりとりがあることで、LINE公式アカウント側でユーザーIDを受け取ることができます。
よって、LINE公式アカウントが必要となります。
LINE公式アカウントはこちらから無料でつくれます。
「3分でかんたん作成!」とありますが、私も作ってみましたが本当に簡単に作れました!
また、このLINE公式アカウントには「LINE Messaging API」の設定が完了している必要があります。
設定方法については、以下のサイトがとてもわかりやすいので、参考にしてください。
SANANEBLOG:Googleフォームの回答をLINEで受け取る方法!【LINE Messaging API対応】
「外部からアクセス可能なn8n」とは?
次は「外部からアクセス可能なn8n」について補足します。
ここでいう「外部からアクセス可能なn8n」とは、以下のような環境を指します。
- クラウド版のn8n
- サーバー上でセルフホストしているn8n
一方で、ローカルPCなどでセルフホストしているn8nは、基本的に外部からアクセスできません。
ただし、ngrokなどのツールを使えば、一時的に外部公開することも可能です。
ローカル環境で作業している場合は、ngrokを利用してください。
STEP① Webhookノードを作成
準備が整ったら、n8nでワークフローを作りましょう!
n8nで新しいワークフローを開いてください。
開いたら、Webhookノードを追加します。
「Add first step」をクリックし、Webhookノードを追加してください。
Webhookノードは以下の3点を設定します。
- HTTP Method:POST
- Path:line-webhook(任意の名前でOK)
- Respond:Immediately
設定自体はこれで完了ですが、後に備え、やって欲しいことがあります。
Webhookノードの最上部の「Webhook URLs」という箇所に表示されてる「Test URL」のURLをコピーしてください。
コピーしたらSaveし、次の設定に進みましょう!
STEP② LINEのWebhook設定を変更
次はLINE側の設定です。
LINE Developersコンソールにアクセスしてください。
アクセスしたらLINE公式アカウントのチャネルをクリック。
次は以下のように進めてください。
- 「Messaging API設定」をクリック
- Webhook設定の「編集」をクリック
Webhook設定の「編集」をクリックしたら、WebhookノードでコピーしたURLをペーストしてください。
貼ったら「更新」をクリック。
次は、Webhookの利用を「ON」にしてください。
これでLINE側の設定は完了です!
STEP③ Edit Fieldsノードを追加・設定する
最後にEdit Fieldsノードを追加します。
このノードはLINEのユーザーIDを取得するために必須ではありません。
じっさい、STEP②までの作業でユーザーIDは取得できます。
けれど、STEP③としてEdit Fieldsノードを加えることで、ユーザーIDを見やすく・扱いやすく整形することができます。
たとえば、複数のユーザーIDを扱う場合や、後からIDをコピペ・管理したい場面では、このステップがあると格段に作業しやすくなります。
そのため、今後の管理や拡張性を考えるとEdit Fieldsノードの追加をおすすめします。
先ほど追加したWebhookにEdit Fieldsノードを追加してください。
「Edit Fields」と検索すると「Edit Fields(Set)」と表示されるはずです。
戸惑うかもしれませんが、これがEdit Fieldsノードです。
Edit Fieldsノードを追加したら、Fields to Setの下にある「Add Field」をクリックしてください。
クリックしたら、以下のように入力します。
- nameの部分:lineUserId
- valueの部分:{{$json[“body”][“events”][0][“source”][“userId”]}}
valueの部分の式は、LINEから送られてきたWebhookデータの中から「ユーザーID」だけを取り出しています。
n8nでは{{$json[“…”]}}と書くことで、JSON形式のデータから特定の値を取り出せます。
下の画像も参考にして設定してください。
設定が完了したら保存し、ワークフローをActiveにしてください。
n8nの設定自体はこれで完了です。
STEP④ n8nでLINEのユーザーIDを取得する
n8nの設定が終わったら「Execute workflow」をクリックし、ワークフローを起動します。
起動したら、LINEのユーザーIDを取得したいアカウントから、LINE公式アカウントにチャットや友達登録をしてください。
※起動してないタイミングでアクションがあってもn8nは反応しません
ワークフロー実行中にこのようなアクションをすることで、Webhookノードがデータを受け取り、Edit Fieldsが「OUTPUT」にLINEのユーザーIDを抽出してくれます。
以下の画像のような感じですね。
LINEのユーザーIDは先頭が「U」で始まります。
IDの取得が完了したら、LINE通知の自動化等に役立ててください。
n8nのWebhookを使ってLINEのユーザーIDを取得する方法の解説は以上となります。
