Messaging API は、LINE公式アカウントから友だち登録済みのユーザーに対して、メッセージを送ったり、ユーザー情報を取得したりできるAPIです。
これまで Messaging API について、
・LINE Developers コンソール
https://kotovuki.co.jp/archives/16761
・Messaging API の 利用料金
https://kotovuki.co.jp/archives/17715
と2回に分けて解説してきました。今回は、その実践編として「Messaging API を使ってメッセージを送信する方法」について、以下の点を詳しく説明します。
・Messaging API を利用してメッセージを送信するメリット
・チャネルアクセストークン(長期)の取得方法
・3種類のメッセージ送信API
・画像メッセージの送信方法
・クイックリプライ機能
Messaging API を利用してメッセージを送信するメリット
LINE公式アカウントから友だち登録済みのユーザーにメッセージを送信することを、メッセージ送信といいます。
Messaging API を利用しなくてもメッセージ送信は可能ですが、Messaging API を使うことで以下の2つのメリットがあります。
・指定したユーザーにメッセージを送信できる
・外部システムからメッセージを送信できる
指定したユーザーにメッセージを送信できる
Messaging API を利用しない場合、メッセージは「LINE Official Account Manager」の「メッセージ配信」画面から送信できます。
この画面では、送信先は「全ての友だちユーザー」または「条件で絞り込まれたユーザー」に限られます。
一方、Messaging API を使えば、任意のユーザーを指定して個別にメッセージを送ることができます。
外部システムからメッセージを送信できる
Messaging API を利用すれば、Claris FileMaker などの外部システムからメッセージを送信できます。外部システムの情報に応じて自動でメッセージを送る運用ができます。
さらに、Messaging API にはユーザー情報の取得 API も用意されているため、ユーザー情報の管理が容易になるというメリットもあります。
参考:ユーザー情報の取得(Messaging API リファレンス)
https://developers.line.biz/ja/reference/messaging-api/#users
チャネルアクセストークン(長期)を取得する
Messaging API を使うには、チャネルアクセストークンを取得する必要があります。
LINE Developers コンソール画面で該当のチャネルを選択します。
[Messaing API 設定] タブを開きます。
下図の 「チャネルアクセストークン(長期)」の値をコピーします。
今回は簡単に取得できる「長期」トークンを紹介しましたが、公式ドキュメントでは「有効期限のあるチャネルアクセストークン」の利用が推奨されています。
参考:チャネルアクセストークン(Messaging API リファレンス)
https://developers.line.biz/ja/docs/basics/channel-access-token
3種類のメッセージ送信API
メッセージを送信するAPIは、送信先によって3種類あります。
リクエストボディの “messages” 配列 に、実際に送信するメッセージの内容を指定します。
{
"to": "U4af4980629...",
"messages":[
{
"type":"text",
"text":"こんにちは!"
},
{
"type":"text",
"text":"伊藤さん"
}
]
}
上の例では、”messages”配列に2つの “text” メッセージオブジェクトを指定しています。この指定により、ユーザーには2つの吹き出しメッセージが連続で送信されます。
“type” プロパティで送信するメッセージの種類を指定します。”text” の場合はテキストメッセージ、”image” の場合は画像メッセージとなります(画像送信の詳細は後述します)。
{
"type":"text",
"text":"こんにちは!"
}
“type” が “text” の場合、”text” プロパティに送信したいメッセージ文字列を設定します。上記の例では「こんにちは!」というメッセージが送信されます。
{
"type":"text",
"text":"こんにちは!"
}
ここまではテキストメッセージについて説明しましたが、次に画像メッセージなど、他のメッセージタイプについても解説します。
画像メッセージを送信する
Messaing API は、JPEG 形式 または PNG 形式の画像送信に対応しています。
画像を送信する際は、”type” プロパティに “image” を指定します。
{
"type": "image",
"originalContentUrl": "https://example.com/original.jpg",
"previewImageUrl": "https://example.com/preview.jpg"
}
画像のURLは2つ指定する必要があります。
“originalContentUrl” : 実際に送信する本体の画像URL
“previewImageUrl” : トーク画面に表示されるプレビュー用の画像URL
プレビュー用の画像とは、下図のようなトーク画面に表示される画像です。
プレビュー用の画像をタップすると、本体画像がダウンロードできる画面が表示されます。
クイックリプライ機能
クイックリプライは、ユーザーが返信するためのボタンを、メッセージと一緒に表示するための機能です。
ユーザーは、トーク画面の下部に表示されるボタンをタップするだけで、LINE公式アカウントに簡単に返信できます。
例えば、「どの果物が好きですか?」というメッセージと共に、下部に3つのボタンが表示されているとします。
「オレンジ」のボタンを押すことで、 “orange” というテキストが送信されます。このようにユーザーは文字を入力することなく、返信することができるのがクリックリプライ機能です。
リクエストボディの中身は下のコードのような構造になります。リプライボタンを配置するには、messages 配列の中に quickReply プロパティを指定します。
{
“messages: [
“to” : “Ub685b39e4346…..”
"text" : "どの果物が好きですか?",
"type" : "text",
"quickReply": {
"items": [
{
"type": "action",
"action": {
"type": "message",
"label": "オレンジ”,
“text”:”orange”
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "ぶどう”,
“text”:”grape”
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "りんご”,
“text”:”apple”
}
},
]
}
],
}
items 配列の中にあるオブジェクトの数だけボタンとして配置されます。3つのボタンを表示させたければ、3つのオブジェクトを配列の中に入れます。
"items": [
{
"type": "action",
"action": {
"type": "message",
"label": "オレンジ”,
“text”:”orange”
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "ぶどう”,
“text”:”grape”
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "りんご”,
“text”:”apple”
}
},
]
“items” 配列の中にある “action” オブジェクトは、ボタンを押した時の動きを指定するためのものです。
“type” プロパティを “message” と指定した場合、ボタンを押すとテキストが返信されます。
"action": {
"type": "message",
"label": "オレンジ”,
“text”:”orange”
}
ボタンに表示される文字は、“label” プロパティに指定します。
"action": {
"type": "message",
"label": "オレンジ”,
"text": "orange"
}
返信するテキストは、”text” プロパティで指定します。
"action": {
"type": "message",
"label": "オレンジ”,
“text”:”orange”
}
“text” プロパティに “orange” を指定しているので、ユーザーは”オレンジ”のボタンを押すと、下図のように “orange” が返信されます。
まとめ
今回は Messaging API を使用したメッセージ送信について解説しました。Messaging API はテキスト、画像、クイックリプライなど様々な種類のメッセージ送信に対応しています。この記事ですべてを紹介しきれていないので、さらに詳しく知りたい方は公式ドキュメントをご覧ください。
参考:メッセージタイプ(Messaging API リファレンス)
https://developers.line.biz/ja/docs/messaging-api/message-types
次回が本シリーズの最終回となり、「Messaging API を利用したメッセージ受信」について詳しく解説する予定です。メッセージの受信方法に興味のある方はお楽しみに。