はじめに
こんにちは、アノテーションの及川です。
LINE Messaging API の「プッシュメッセージ」について試してみたので簡単にご紹介します。
Messaging API について
Messaging API は LINE が提供している API の一つであり、LINE のメッセージ機能を利用して、ユーザーとの対話を自動化するためのインターフェイスです。
利用シーンとしては、ユーザーからの質問への自動応答等、任意のタイミングでユーザーにメッセージを送信したり、ユーザーからのメッセージに対して、応答メッセージで返信したりできます。また、さまざまなタイプのメッセージが利用可能です。
応答メッセージを送る
Messaging APIを利用すると、LINE公式アカウントと対話するユーザーに対して、メッセージを返信できます。詳しくは「メッセージを送信する」を参照してください。
任意のタイミングでメッセージを送る
Messaging APIを利用すると、いつでもユーザーに直接メッセージを送ることができます。詳しくは、「メッセージを送信する」を参照してください。
さまざまなタイプのメッセージを送る
Messaging APIでは、以下のようなさまざまなタイプのメッセージをユーザーに送信できます。これらのメッセージの仕様の詳細については、「メッセージタイプ」を参照してください。
テキストメッセージ
スタンプメッセージ
画像メッセージ
動画メッセージ
音声メッセージ
位置情報メッセージ
イメージマップメッセージ
テンプレートメッセージ
Flex Message
試してみた
Messaging API の「プッシュメッセージ」は、下記手順にて試すことができます。
簡単に補足しながら、順番に説明します。
LINE Developers コンソールにログインする
LINE Developers コンソールにログインします。
これまでにログインしたことがなければ、下記の LINE Developers の公式ドキュメントを参考にしてアカウント作成を行ってください。
LINE Developersコンソールへのログイン | LINE Developers
新規プロバイダーの作成
コンソール(ホーム)画面から、プロバイダーの [作成] をクリックしてください。
プロバイダー名を入力して、[作成] をクリックしてください。
チャネル設定
作成したプロバイダーページで、[チャネル設定] タブの [Messaging API] をクリックしてください。
新規にチャネルを作成するにあたり、下記例のように必要な情報を入力してください。
最後に [作成] をクリックしてください。
"以下の内容でMessagin APIチャネルを作成しますか?" と聞かれるため、[OK] をクリックしてください。
"情報利用に関する同意について" の画面が表示されたら、内容を確認して、[同意する] をクリックしてください。
"LINEヤフーグループへの情報提供に関する個別契約への同意について" の画面も内容を確認して、[同意する] をクリックしてください。
チャネルアクセストークンの発行
[Messaging API設定]タブを開いてください。
画面最下部のチャネルアクセストークンより、[発行] をクリックしてください。
クリック後、チャネルアクセストークン(長期)が発行されるため、控えておいてください。
Messaging APIを呼び出すときに使用するチャネルアクセストークンです。このチャネルアクセストークンは期限切れになりません。新しいチャネルアクセストークンを発行したり、既存のチャネルアクセストークンを置き換える場合は、「発行」をクリックします。
ユーザーID の確認
Messaging API を使用して自分の LINE アカウントにテストメッセージを送信するため、ユーザー ID を控えてください。
[チャネル基本設定] タブを開いてください。
画面最下部の [あなたのユーザーID] をメモ帳等に控えておいてください。
コンソールにログインしているLINEアカウントのユーザーIDです。Messaging APIを使用してあなたのLINEアカウントにテストメッセージを送信するときに使用します。メッセージを送信するには、あらかじめ「Messaging API」タブに表示されるQRコードを、あなたのLINEで読み取り、このチャネルのLINE公式アカウントを友だち登録してください。
友だち追加
[Messaging API設定] タブを開いて表示される QR コードを LINE アプリやカメラのアプリでスキャンしてアクセスしてください。
自分が作成したチャンネルが表示されたら、[友だち追加] のボタンを押してください。
[トーク] のボタンを押してください。
下記の画面のように表示されたら OK です。
Messaging API でプッシュメッセージを送る
API は下記のURL等で公開されています。
- API
POST https://api.line.me/v2/bot/message/push
- curl コマンド例
curl -v -X POST https://api.line.me/v2/bot/message/push \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {channel access token}' \
-H 'X-Line-Retry-Key: {UUID}' \
-d '{
"to": "U4af4980629...",
"messages":[
{
"type":"text",
"text":"Hello, world1"
},
{
"type":"text",
"text":"Hello, world2"
}
]
}'
curl コマンド例を参考に下記のようにターミナルでコマンドを実行してみましょう。
curl -v -X POST https://api.line.me/v2/bot/message/push \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Your channel access token>' \
-d '{
"to": "<Your user id>",
"messages":[
{
"type":"text",
"text":"これは Messaging API のテストです。"
},
{
"type":"text",
"text":"このように手元で簡単に試すことができます!"
}
]
}'
ターミナルで実行後、下記のように表示されたら OK です。
* Trying 147.92.144.180:443...
* Connected to api.line.me (147.92.144.180) port 443 (#0)
* ALPN: offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384
* ALPN: server accepted h2
* Server certificate:
* subject: C=JP; ST=Tokyo-to; L=Shinjuku-ku; O=LINE Corporation; CN=*.line.me
* start date: Aug 10 02:36:02 2023 GMT
* expire date: Sep 10 02:36:01 2024 GMT
* subjectAltName: host "api.line.me" matched cert's "*.line.me"
* issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018
* SSL certificate verify ok.
* using HTTP/2
* h2 [:method: POST]
* h2 [:scheme: https]
* h2 [:authority: api.line.me]
* h2 [:path: /v2/bot/message/push]
* h2 [user-agent: curl/8.1.2]
* h2 [accept: */*]
* h2 [content-type: application/json]
* h2 [authorization: Bearer <Your channel access token>]
* h2 [content-length: 318]
* Using Stream ID: 1 (easy handle 0x15680c200)
> POST /v2/bot/message/push HTTP/2
> Host: api.line.me
> User-Agent: curl/8.1.2
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer <Your channel access token>
> Content-Length: 318
>
* We are completely uploaded and fine
< HTTP/2 200
< x-xss-protection: 1; mode=block
< x-line-request-id: 7bae6fe6-6572-4ed2-a772-a2e997de69f0
< x-frame-options: DENY
< x-content-type-options: nosniff
< pragma: no-cache
< expires: 0
< date: ***, ** *** 2023 07:36:35 GMT
< content-type: application/json
< content-length: 406
< cache-control: no-cache, no-store, max-age=0, must-revalidate
< server: legy
<
* Connection #0 to host api.line.me left intact
{"sentMessages":[{"id":"***","quoteToken":"***"},{"id":"***","quoteToken":"***"}]}
LINE のトーク画面で下記のように表示されていれば成功です。
まとめ
今回は、LINE Messaging API の「プッシュメッセージ」について、使用方法を簡単にご紹介しました。
この記事が少しでも誰かのお役にたてば幸いです。
参考資料
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。