# Messaging APIリファレンス
# 共通仕様
Messaging APIにおけるエンドポイントのドメイン名、リクエストが成功・失敗した際のレスポンス、レート制限などの共通仕様です。
# ドメイン名
Messaging APIでは、エンドポイントによってドメイン名が異なります。利用時は注意してください。
ドメイン名 | エンドポイント |
---|---|
api-data.line.me | |
api.line.me | 上記以外のエンドポイント |
# レート制限
Messaging APIでは、チャネル単位かつAPI機能(エンドポイント)ごとに以下のレート制限が適用されます。レート制限が適用される範囲について詳しくは、「レート制限の範囲」を参照してください。
レート制限を超えて送信を行った場合、429 Too Many Requests
が返却され、エラーとなります。Messaging APIを使ったLINEボットを開発する際は、レート制限を含め、Messaging API開発ガイドラインに従ってください。
エンドポイント | レート制限 |
---|---|
60リクエスト/時 | |
| 60リクエスト/分 |
1,000リクエスト/分 | |
100リクエスト/時 ※ | |
3リクエスト/時 | |
200リクエスト/秒 | |
100リクエスト/秒 | |
370リクエスト/秒 | |
上記以外のエンドポイント | 2,000リクエスト/秒 |
※ LINE Official Account Managerを使ってリッチメニューを作成・削除する場合は制限の対象外です。
# レート制限の範囲
Messaging APIでは、レート制限をチャネル単位かつAPI機能(エンドポイント)ごとに適用します。レート制限の範囲について、以下の点に注意してください。
- エンドポイントのURLが同じであっても、HTTPメソッドが異なれば別のエンドポイントとみなします。
- レート制限は、URL中のパラメータの内容や、リクエストボディの内容を区別せずに適用されます。
- レート制限は、エンドポイントの呼び出し元のIPアドレスの違いを区別せずに適用されます。
- 同じLINE公式アカウントに対するエンドポイントの呼び出しであっても、チャネルが異なる場合はチャネルごとに独立してレート制限が適用されます。
# 同時処理数の制限
ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId
)単位での同時処理数の制限があります。
下記のエンドポイントで同時に処理されているリクエストの合計が、同時処理数としてカウントされます。
エンドポイント | 同時処理数の上限 |
---|---|
10 |
同時処理数の上限を超えるリクエストに対しては、ステータスコード429 Too Many Requests
のエラーが返ります。エラーを受け取った場合は、しばらく時間をおいてから再度リクエストをしてください。
処理中のリクエストの数は、以下のエンドポイントのレスポンスに含まれるjobs
プロパティで確認できます。ジョブのステータス(jobs[].jobStatus
プロパティ)が待機中(QUEUED
)、もしくは実行中(WORKING
)の場合に、同時処理数として計上されます。
# ステータスコード
APIコールの後で、以下のHTTPステータスコードが返されます。ステータスコードの説明は、特に断りがない限り、HTTP status code specification (opens new window)に準拠しています。
ステータスコード | 説明 |
---|---|
200 OK | リクエストが成功しました。 |
400 Bad Request | リクエストに問題があります。 |
401 Unauthorized | 有効なチャネルアクセストークンが指定されていません。 |
403 Forbidden | リソースにアクセスする権限がありません。ご契約中のプランやアカウントに付与されている権限を確認してください。 |
404 Not Found | プロフィール情報を取得できませんでした。次のような理由が考えられます。
|
409 Conflict | 同じリトライキーを持つAPIリクエストがすでに受理されています。詳しくは、「失敗したAPIリクエストを再試行する」を参照してください。 |
410 Gone | 利用できなくなったリソースにアクセスしています。 |
413 Payload Too Large | リクエストのサイズが上限の2MBを超えています。リクエストのサイズを2MB以下にしてリクエストしなおしてください。 |
415 Unsupported Media Type | アップロードしようとしたファイルのメディア形式はサポートされていません。 |
429 Too Many Requests | 無料メッセージ通数や、追加メッセージ数の上限目安について詳しくは、『Messaging APIドキュメント』の「Messaging APIの料金」を参照してください。 |
500 Internal Server Error | 内部サーバーのエラーです。 |
# レスポンスヘッダー
Messaging APIのレスポンスには以下のHTTPヘッダーが含まれます。
レスポンスヘッダー | 説明 |
---|---|
X-Line-Request-Id | リクエストID。各リクエストごとに発行されるIDです。 |
X-Line-Accepted-Request-Id 含まれないことがあります | 同じリトライキーを使ってすでにリクエストが受理されている場合、そのリクエストのx-line-request-id を示します。詳しくは、「APIリクエストを再試行する」を参照してください。 |
# エラーレスポンス
エラー発生時は、以下のJSONデータを含むレスポンスボディが返されます。
message
String
エラー情報を含むメッセージ。詳しくは、「エラーメッセージ」を参照してください。
details
Array
エラー詳細の配列。配列が空の場合は、レスポンスに含まれません。
details[].message
String
エラーの詳細。特定の状況ではレスポンスに含まれません。
「オーディエンス管理」のエンドポイントに関するエラーの詳細については、「オーディエンス管理に関するエラーの詳細」を参照してください。
details[].property
String
エラーの発生箇所。リクエストのJSONのフィールド名やクエリパラメータ名が返ります。特定の状況ではレスポンスに含まれません。
エラーレスポンスの例
# エラーメッセージ
エラーのJSONレスポンスのmessage
プロパティに含まれる、主なエラーメッセージは以下のとおりです。
メッセージ | 説明 |
---|---|
The request body has X error(s) | リクエストボディのJSONデータにエラーがありました。Xの部分にエラーの数が表示されます。詳細はdetails[].message プロパティとdetails[].property プロパティに含まれます。 |
Invalid reply token | 応答メッセージを送る際にreplyToken で指定した応答トークンが無効です。次のような理由が考えられます。
|
The property, XXX, in the request body is invalid (line: XXX, column: XXX) | リクエストボディに無効なプロパティが指定されていました。XXXの部分に具体的な行と列が表示されます。 |
The request body could not be parsed as JSON (line: XXX, column: XXX) | リクエストボディのJSONデータを解析できませんでした。XXXの部分に具体的な行と列が表示されます。 |
The content type, XXX, is not supported | APIでサポートされていないコンテンツタイプがリクエストされました。 |
Authentication failed due to the following reason: XXX | APIが呼び出されたときに認証に失敗しました。XXXの部分に理由が表示されます。 |
Access to this API is not available for your account | 実行権限がないAPIを呼び出しました。 |
Failed to send messages | メッセージの送信に失敗しました。指定したユーザーIDが存在しない場合などにこのエラーが発生します。 |
You have reached your monthly limit. |
|
Not found | プロフィール情報を取得できませんでした。次のような理由が考えられます。
|
# その他の共通仕様
# リクエストボディのプロパティに指定するURLのエンコードについて
プロパティにURLを指定する場合は、ドメイン名、パス、クエリパラメータ、フラグメントはUTF-8を用いてパーセントエンコード (opens new window)してください。
たとえば、以下の構成要素を持つURIを指定する場合は、 https://example.com/path?q=%E3%81%8A%E3%81%AF%E3%82%88%E3%81%86#%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF
とします。
スキーム | ドメイン名 | パス | クエリパラメータ | フラグメント | |
---|---|---|---|---|---|
キー | 値 | ||||
https | example.com | /path | q | おはよう | こんにちは |
# Webhook
友だち追加やユーザーからのメッセージ送信のようなイベントが発生すると、LINEプラットフォームからWebhook URL(ボットサーバー)にHTTPS POSTリクエストが送信されます。
Webhook URLはチャネルごとにLINE Developersコンソールで設定します。
HTTP POSTリクエストの処理が後続のイベントの処理に遅延を与えないよう、イベント処理を非同期化することを推奨します。
Webhookリクエスト送信元のLINEプラットフォームのIPアドレスは開示していません。セキュリティの担保はIPアドレスによるアクセス制御ではなく、署名の検証で実施してください。
# リクエストヘッダー
x-line-signature
署名の検証に使う署名
リクエストヘッダーのフィールド名は、大文字・小文字の表記が予告なく変更される可能性があります。Webhookを受け取るボットサーバー側では、ヘッダーフィールド名の大文字小文字を区別せずに扱ってください。*1
変更前 | 変更後 | |
---|---|---|
ヘッダーフィールド名の例 | X-Line-Signature | x-line-signature |
*1 https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 (opens new window)
# リクエストボディ
リクエストボディは、Webhookイベントを受信すべきボットのユーザーIDとWebhookイベントオブジェクトの配列を含むJSONオブジェクトです。
destination
String
Webhookイベントを受信すべきボットのユーザーID。ユーザーIDの値は、U[0-9a-f]{32}
の正規表現にマッチする文字列です。
events
Array
Webhookイベントオブジェクトの配列。LINEプラットフォームからの疎通確認のために、Webhookイベントオブジェクトを含まない空配列が送信される場合があります。
# レスポンス
LINEプラットフォームから送信されるHTTP POSTリクエストをボットサーバーで受信したときは、ステータスコード200
を返してください。
LINEプラットフォームから送信されるHTTP POSTリクエストの受信に失敗した場合でも、このリクエストを再度受け取ることができます。詳しくは、「受け取りに失敗したWebhookを再送する」を参照してください。
LINEプラットフォームから疎通確認のために、Webhookイベントが含まれないHTTP POSTリクエストが送信されることがあります。この場合も、ステータスコード
200
を返してください。Webhookイベントが含まれないHTTP POSTリクエストの例:
{ "destination": "xxxxxxxxxx", "events": [] }
# 署名を検証する
ボットサーバーにWebhookのリクエストが届いたら、Webhookイベントオブジェクトを処理する前に、リクエストヘッダーに含まれる署名を検証してください。署名の検証は、開発者のボットサーバーに届いたリクエストが「LINEプラットフォームから送信されたWebhookか」および「通信経路で改ざんされていないか」などを確認するための重要な手順です。
詳しくは、『Messaging APIドキュメント』の「Webhookの署名を検証する」を参照してください。
署名検証の例
# Webhookイベントオブジェクト
LINEプラットフォームで生成されるイベントを含むJSONオブジェクトです。
これらのイベントオブジェクトのプロパティは、値が存在しない場合があります。値が存在しないプロパティは、生成されるイベントオブジェクトに含まれません。
Webhookイベントオブジェクトの例
# 共通プロパティ
以下のプロパティはWebhookイベントオブジェクトの共通プロパティです。
type
String
イベントのタイプを表す識別子
mode
String
チャネルの状態。
active
:チャネルがアクティブです。このWebhookイベントを受信したボットサーバーから、応答メッセージやプッシュメッセージなどを送信できます。standby
:チャネルが待機状態です。チャネルの状態がstandby
のときは、Webhookに応答メッセージを送るための応答トークンは含まれません。チャネルの状態がstandby
になるタイミングについて詳しくは、『モジュールドキュメント』の「Webhookイベントの受信」を参照してください。
チャネルの状態がstandby
のときは、受信したWebhookイベントに対してモジュールがメッセージなどで応答している可能性があります。ユーザーとモジュールがやりとりをしている最中に、ボットからもメッセージが送信されるとユーザーの混乱を招きます。そのため、mode
プロパティがstandby
のWebhookイベントを受信したボットサーバーはメッセージの送信を控えてください。
timestamp
Number
イベントの発生時刻。UNIX時間(ミリ秒)で返されます。再送されたWebhookの場合でも、再送された時刻ではなく、イベントの発生時刻を表します。
Webhookの再送が有効である場合、Webhookイベントの発生順序と、ボットサーバーに到達する順序が大きく崩れる可能性があります。これが問題になる場合は、timestamp
を確認することによって、前後関係を確認してください。
source
Object
イベントの送信元情報を含むユーザー、グループトーク、または複数人トークオブジェクト。
このプロパティは、アカウントの連携に失敗した場合、アカウント連携イベントには含まれません。
webhookEventId
String
WebhookイベントID。Webhookイベントを一意に識別するためのID。ULID形式の文字列になります。
deliveryContext.isRedelivery
Boolean
Webhookイベントが再送されたものかどうか。詳しくは、「再送されるWebhook」を参照してください。
true
:再送されたWebhookイベントです。false
:初めて送られたWebhookイベントです。
# 送信元ユーザー
type
String
user
userId
String
送信元ユーザーのID
送信元ユーザーの例
# 送信元グループトーク
type
String
group
groupId
String
送信元グループトークのグループID
userId
String
送信元ユーザーのID。メッセージイベントにのみ含まれます。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみuserId
に含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。
送信元グループトークの例
# 送信元複数人トーク
type
String
room
roomId
String
送信元複数人トークのトークルームID
userId
String
送信元ユーザーのID。メッセージイベントにのみ含まれます。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみuserId
に含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。
送信元複数人トークの例
# メッセージイベント
ユーザーから送信されたメッセージを含むWebhookイベントオブジェクトです。メッセージのタイプに対応するメッセージオブジェクトが、message
プロパティに含まれます。メッセージイベントには応答できます。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
message
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
# テキスト
送信元から送られたテキストを含むメッセージオブジェクトです。
id
String
メッセージID
type
String
text
quoteToken
String
メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
text
String
メッセージのテキスト
- エンドユーザーがLINE絵文字を送信した場合は、
(hello)
や(love)
のように、LINE絵文字が文字列で含まれます。LINE絵文字の詳細は、emojis
プロパティで確認できます。 - エンドユーザーがメンションした場合は、
@example
のように、送信相手のLINEアカウントの表示名が文字列で含まれます。メンションの詳細は、mention
プロパティで確認できます。
emojis
Array
1個以上のLINE絵文字オブジェクトの配列。text
プロパティにLINE絵文字が含まれる場合のみ、メッセージイベントに含まれます。
- Android版LINEから送信されたデフォルトのLINE絵文字は、含まれません。
- Unicodeで定義された絵文字や古いバージョンのLINE絵文字は、含まれないことがあります。
emojis[].index
Number
テキストの先頭を0
とした、text
プロパティ内の絵文字の開始位置。
emojis[].length
Number
LINE絵文字の文字列の長さ。LINE絵文字(hello)
であれば、7
が長さになります。
emojis[].productId
String
LINE絵文字の集合を示すプロダクトID。プロダクトIDの例として、「LINE絵文字」を参照してください。
emojis[].emojiId
String
プロダクトID内のLINE絵文字のID。LINE絵文字のIDの例として、「LINE絵文字」を参照してください。
mention
Object
メンションの情報を含むオブジェクト。text
プロパティにメンションが含まれる場合のみ、メッセージイベントに含まれます。
mention.mentionees[]
Array of objects
1個以上のメンションオブジェクトの配列。
最大メンション数:20
mention.mentionees[].index
Number
テキストの先頭を0
とした、text
プロパティ内のメンションの開始位置。
mention.mentionees[].length
Number
メンションの長さ。@example
であれば、8
が長さになります。
mention.mentionees[].type
String
メンションの対象。
user
:ユーザーまたはボットall
:グループ全体
mention.mentionees[].userId
String
メンションされたユーザーまたはボットのユーザーID。mention.mentionees[].type
がuser
の場合にのみ含まれます。メンションされたのがユーザーの場合は、LINE公式アカウントがプロフィール情報を取得することに、ユーザーが同意しているときにのみ含まれます。
mention.mentionees[].isSelf
Boolean
Webhookイベントを受信したボット(destination
)に対するメンションかどうか。mention.mentionees[].type
プロパティの値がuser
のときのみ含まれます。
true
:Webhookイベントを受信したボットに対するメンションである。false
:他のユーザーに対するメンションである。
詳しくは、『Messaging APIドキュメント』の「ボットへのメンションを含むメッセージが送信されたときのWebhook」を参照してください。
quotedMessageId
String
引用されたメッセージのメッセージID。過去のメッセージを引用している場合にのみ含まれます。
テキストメッセージの例
# 画像
送信元から送られた画像を含むメッセージオブジェクトです。
id
String
メッセージID
type
String
image
quoteToken
String
メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
contentProvider.type
String
画像ファイルの提供元。
line
:LINEユーザーが画像ファイルを送信しました。画像ファイルのバイナリデータは、メッセージIDを指定してコンテンツを取得するエンドポイントを使用することで取得できます。external
:画像ファイルのURLはcontentProvider.originalContentUrl
プロパティに含まれます。なお、画像ファイルの提供元がexternal
の場合、画像ファイルのバイナリデータはコンテンツを取得するエンドポイントで取得できません。
contentProvider.originalContentUrl
String
画像ファイルのURL。contentProvider.type
がexternal
の場合にのみ含まれます。画像ファイルが置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。
contentProvider.previewImageUrl
String
プレビュー画像のURL。contentProvider.type
がexternal
の場合にのみ含まれます。プレビュー画像が置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。
imageSet.id
String
画像セットID。複数の画像を同時に送信した場合のみ含まれます。
imageSet.index
Number
同時に送信した画像セットの中で、何番目の画像かを示す1
から始まるインデックス。複数の画像を同時に送信した場合のみ含まれます。ただし送信元がAndroid版LINE 11.15以前の場合は含まれません。
ユーザーが複数の画像を同時に送信すると、LINEプラットフォームからボットサーバーにWebhookイベントが複数送られてきます。このときWebhookの順序は不定ですので、imageSet.index
の値の順序で届くとは限りません。
imageSet.total
Number
同時に送信した画像の総数。同時に2つの画像を送信した場合は2
です。複数の画像を同時に送信した場合のみ含まれます。ただし送信元がAndroid版LINE 11.15以前の場合は含まれません。
画像メッセージの例
# 動画
送信元から送られた動画を含むメッセージオブジェクトです。トーク画面に表示されている画像はプレビュー画像で、画像をタップすると動画が表示されます。
id
String
メッセージID
type
String
video
quoteToken
String
メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
duration
Number
動画ファイルの長さ(ミリ秒)
contentProvider.type
String
動画ファイルの提供元。
line
:LINEユーザーが動画ファイルを送信しました。動画ファイルのバイナリデータは、メッセージIDを指定してコンテンツを取得するエンドポイントを使用することで取得できます。external
:動画ファイルのURLはcontentProvider.originalContentUrl
プロパティに含まれます。なお、動画ファイルの提供元がexternal
の場合、動画ファイルのバイナリデータはコンテンツを取得するエンドポイントで取得できません。
contentProvider.originalContentUrl
String
動画ファイルのURL。contentProvider.type
がexternal
の場合にのみ含まれます。動画ファイルが置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。
contentProvider.previewImageUrl
String
プレビュー画像のURL。contentProvider.type
がexternal
の場合にのみ含まれます。プレビュー画像が置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。
動画メッセージの例
# 音声
送信元から送られた音声を含むメッセージオブジェクトです。
id
String
メッセージID
type
String
audio
duration
Number
音声ファイルの長さ(ミリ秒)
contentProvider.type
String
音声ファイルの提供元
line
:LINEユーザーが音声ファイルを送信しました。音声ファイルのバイナリデータは、メッセージIDを指定してコンテンツを取得するエンドポイントを使用することで取得できます。external
:音声ファイルのURLはcontentProvider.originalContentUrl
プロパティに含まれます。なお、音声ファイルの提供元がexternal
の場合、音声ファイルのバイナリデータはコンテンツを取得するエンドポイントで取得できません。
contentProvider.originalContentUrl
String
音声ファイルのURL。contentProvider.type
がexternal
の場合にのみ含まれます。音声ファイルが置かれているサーバーは、LINEヤフー株式会社が提供しているものではありません。
音声メッセージの例
# ファイル
送信元から送られたファイルを含むメッセージオブジェクトです。ファイルのバイナリデータは、メッセージIDを指定してAPIを呼び出すことで取得できます。詳しくは、「コンテンツを取得する」を参照してください。
id
String
メッセージID
type
String
file
fileName
String
ファイル名
fileSize
Number
ファイルサイズ(バイト)
ファイルメッセージの例
# 位置情報
送信元から送られた位置情報データを含むメッセージオブジェクトです。
id
String
メッセージID
type
String
location
title
String
タイトル
address
String
住所
latitude
Decimal
緯度
longitude
Decimal
経度
位置情報メッセージの例
# スタンプ
送信元から送られたスタンプデータを含むメッセージオブジェクトです。LINEの基本的なスタンプとスタンプIDについては、スタンプを参照してください。
ユーザーが送信したスタンプのパッケージIDやスタンプIDなどはWebhookで取得できますが、スタンプ画像そのものを取得することはできません。
Messaging APIは、現時点ではスタンプアレンジ機能に対応していないため、どんなスタンプを組み合わせたかという情報は取得できません。ユーザーがスタンプアレンジ機能を用いてスタンプメッセージを送った場合、Webhookでは一律で以下のスタンプ情報が届きます。
- パッケージID:
30563
- スタンプID:
651698630
- スタンプのリソースタイプ:
STATIC
id
String
メッセージID
type
String
sticker
quoteToken
String
メッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
packageId
String
パッケージID
stickerId
String
スタンプID
stickerResourceType
String
スタンプのリソースタイプ。以下のいずれかの値です。
STATIC
:静止画スタンプANIMATION
:アニメーションスタンプSOUND
:サウンドスタンプANIMATION_SOUND
:アニメーション+サウンドスタンプPOPUP
:ポップアップスタンプまたはエフェクトスタンプPOPUP_SOUND
:ポップアップ+サウンドスタンプまたはエフェクト+サウンドスタンプCUSTOM
:カスタムスタンプ。ユーザーが入力した任意のテキストは取得できません。MESSAGE
:メッセージスタンプNAME_TEXT
:カスタムスタンプ(廃止)PER_STICKER_TEXT
:メッセージスタンプ(廃止)
今後、新しいリソースタイプが予告なく追加される可能性があります。将来、従来と異なるリソースタイプを受信しても不具合が発生しないように、サーバーを実装してください。
keywords
Array of strings
スタンプを表すキーワード。最大15個の文字列が含まれる配列です。16個以上のキーワードを持つスタンプの場合は、その中からランダムに15個のキーワードを返します。そのため同じスタンプでも、異なるキーワードが返ることがあります。
keywords
プロパティは、現在試験的に提供しています。そのため、今後予告なく仕様が変更されたり、提供を終了する可能性があります。
text
String
ユーザーが入力した任意のテキスト。このプロパティは、メッセージスタンプの場合のみ含まれます。
最大文字数:100
カスタムスタンプの場合は、ユーザーが入力した任意のテキストは取得できません。
quotedMessageId
String
引用されたメッセージのメッセージID。過去のメッセージを引用している場合にのみ含まれます。
スタンプメッセージの例
# 送信取消イベント
ユーザーがメッセージの送信を取り消したことを示すイベントです。
ユーザーがメッセージの送信を取り消すと、ボットサーバーに送信取消イベントが届きます。送信取消イベントを受け取った場合、サービス提供者はユーザーがメッセージの送信を取り消した意図を尊重し、以降は対象のメッセージを見たり利用したりできないよう、最大限の配慮を持って対象のメッセージを適切に扱うことを推奨します。詳しくは、『Messaging APIドキュメント』の「送信取消イベント受信時の処理」を参照してください。
送信取消イベントの例
# フォローイベント
LINE公式アカウントが友だち追加またはブロック解除されたことを示すイベントです。フォローイベントには応答できます。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
follow
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
follow.isUnblocked
Boolean
true
:ユーザーがLINE公式アカウントをブロック解除しました。false
:ユーザーがLINE公式アカウントを友だち追加しました。
follow.isUnblocked
プロパティは、「友だち追加」および「ブロック解除」の完全な正確性を保証するものではありません。
フォローイベントの例
# フォロー解除イベント
LINE公式アカウントがブロックされたことを示すイベントです。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
unfollow
フォロー解除イベントの例
# 参加イベント
LINE公式アカウントがグループトークや複数人トークに参加したことを示すイベントです。参加イベントには応答できます。
参加イベントが送信されるタイミングはグループトークと複数人トークで異なります。
- グループトークの場合:ユーザーがLINE公式アカウントを招待したときに送信されます。
- 複数人トークの場合:LINE公式アカウントが複数人トークに追加された後で、最初に何らかのイベントが発生したときに送信されます。たとえば、ユーザーがメッセージを送ったり、ユーザーが複数人トークに追加されたりしたときです。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
join
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
参加イベントの例
# 退出イベント
ユーザーがグループトークからLINE公式アカウントを削除したか、LINE公式アカウントがグループトークまたは複数人トークから退出したことを示すイベントです。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
leave
退出イベントの例
# メンバー参加イベント
LINE公式アカウントがメンバーになっているグループトークまたは複数人トークにユーザーが参加したことを示すイベントです。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
memberJoined
joined.members
Array
参加したユーザー。送信元ユーザーオブジェクトの配列です。
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
メンバー参加イベントの例
# メンバー退出イベント
LINE公式アカウントがメンバーになっているグループトークまたは複数人トークからユーザーが退出したことを示すイベントです。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
memberLeft
left.members
Array
退出したユーザー。送信元ユーザーオブジェクトの配列です。
メンバー退出イベントの例
# ポストバックイベント
ユーザーが、ポストバックアクションを実行したことを示すイベントオブジェクトです。ポストバックイベントには応答できます。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
postback
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
postback.data
String
ポストバックデータ
Object
以下のいずれかのJSONオブジェクト
- 日時選択アクションの
postback.params
オブジェクト。 - リッチメニュー切替アクションの
postback.params
オブジェクト。- リッチメニュー切替アクションを介してユーザーが選択したリッチメニューエイリアスIDを含むJSONオブジェクト。
- リッチメニュー切替アクションによるポストバックアクションの場合にのみ返されます。
ポストバックイベントの例
# 日時選択アクションのpostback.params
オブジェクト
日時選択アクションを介してユーザーが選択した日時を含むオブジェクトです。full-date
、time-hour
、およびtime-minute
の形式は、RFC3339プロトコル (opens new window)で定義されています。
プロパティ | 形式 | 説明 |
---|---|---|
date | full-date | ユーザーが選択した日付。date モードの場合にのみ含まれます。 |
time | time-hour ":" time-minute | ユーザーが選択した時刻。time モードの場合にのみ含まれます。 |
datetime | full-date "T" time-hour ":" time-minute | ユーザーが選択した日付と時刻。datetime モードの場合にのみ含まれます。 |
日時選択アクションのpostback.paramsオブジェクトの例
# リッチメニュー切替アクションのpostback.params
オブジェクト
リッチメニュー切替アクションを介してユーザーが選択したリッチメニューエイリアスIDを含むオブジェクトです。
プロパティ | 形式 | 説明 |
---|---|---|
newRichMenuAliasId 含まれないことがあります | String | 切替先のリッチメニューエイリアスID。リッチメニューの切替に失敗した場合は含まれません。 |
status | String | SUCCESS :リッチメニューが正常に変更されました。RICHMENU_ALIAS_ID_NOTFOUND :指定されたリッチメニューエイリアスIDが見つかりませんでした。RICHMENU_NOTFOUND :指定されたリッチメニューエイリアスIDに紐づくリッチメニューIDが見つかりませんでした。FAILED :リッチメニューの切替に失敗しました。 |
リッチメニュー切替アクションのpostback.paramsオブジェクトの例
# 動画視聴完了イベント
LINE公式アカウントから送信されたtrackingId
が指定された動画の視聴を、ユーザーが少なくとも一回最後まで視聴したことを示すイベントです。
動画視聴完了イベントは、ユーザーの動画視聴回数を示すものではありません。
トークルーム上で複数回動画を視聴しても、重複してイベントが発生することはありません。ただし、一度トークルームを閉じた後で再度開き動画を視聴すると、再びイベントが発生する場合があります。
イメージマップメッセージおよびFlex Messageの動画にtrackingId
を指定することはできません。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
videoPlayComplete
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
videoPlayComplete.trackingId
String
動画を識別するためのID。動画メッセージに付与したtrackingId
と同じ値を返します。
動画視聴完了イベントの例
# ビーコンイベント
ビーコンの電波の受信圏にユーザーが入ったことを示すイベントオブジェクトです。ビーコンイベントには応答できます。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
beacon
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
beacon.hwid
String
検出されたビーコンのハードウェアID
beacon.type
String
ビーコンイベントのタイプ。「ビーコンイベントのタイプ」を参照してください。
beacon.dm
String
検出されたビーコンのデバイスメッセージ。このメッセージは、ボットサーバーへの通知を目的としてビーコンにより生成されるデータです。Device messageプロパティをサポートするデバイスからのWebhookイベントにのみ含まれます。
詳しくは、LINE Simple Beaconの仕様 (opens new window)を参照してください。
ビーコンイベントの例
# ビーコンイベントのタイプ
beacon.type | 説明 |
---|---|
enter | ユーザーがビーコンの電波の受信圏に入りました。 |
banner | ユーザーがビーコンバナーをタップしました。 |
stay | ユーザーがビーコンの電波の受信圏に滞在しています。 このイベントは、最短10秒間隔で繰り返し送信されます。 |
2021年1月現在、日本ではbanner
およびstay
イベントの新規利用受付は停止していますが、それ以外の地域では継続しています。
# アカウント連携イベント
ユーザーがLINEアカウントとプロバイダーが提供するサービスのアカウントを連携したことを示すイベントオブジェクトです。アカウント連携イベントには応答できます。
連携トークンの期限が切れている、または使用済みの場合は、Webhookイベント自体が送信されず、ユーザーにエラーが表示されます。
timestamp、sourceなど
「共通プロパティ」を参照してください。
アカウントの連携に失敗した場合、source
プロパティはアカウント連携イベントに含まれません。
type
String
accountLink
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン。アカウントの連携に失敗した場合、このプロパティは含まれません。
link.result
String
アカウントの連携が成功したかどうかを示す値。以下のどちらかになります。
ok
:アカウントの連携が成功したことを示します。failed
:ユーザーのすり替えなどが原因で、アカウントの連携が失敗したことを示します。
link.nonce
String
ユーザーIDの検証時に指定したnonce(number used once)。詳しくは、『Messaging APIドキュメント』の「nonceを生成してユーザーをLINEプラットフォームにリダイレクトする」を参照してください。
アカウント連携イベントの例
# メンバーシップイベント
ユーザーがLINE公式アカウントのメンバーシップに加入や継続課金、またはメンバーシップを退会したことを示すイベントです。
LINE公式アカウントがメンバーシップで複数のプランを提供している場合において、あるプランに加入中のユーザーが当月中に別のプランに変更したときは、退会と加入に関するWebhookイベントが送信されます。なお、ユーザーがプロフィール情報の取得に同意していない場合は、Webhookイベントは送信されません。詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。
timestamp、sourceなど
「共通プロパティ」を参照してください。
type
String
membership
replyToken
String
このイベントに対して応答メッセージを送る際に使用する応答トークン
membership.type
String
メンバーシップイベントのタイプ。以下のいずれかの値です。
joined
:ユーザーがメンバーシップに加入した。left
:ユーザーがメンバーシップを退会した。renewed
:ユーザーがメンバーシップに継続課金した。
membership.membershipId
Number
ユーザーが加入、退会または継続課金したメンバーシップのID
メンバーシップイベントの例
# Webhook設定
チャネルのWebhookエンドポイントを設定、検証、取得します。
# WebhookエンドポイントのURLを設定する
PUT
https://api.line.me/v2/bot/channel/webhook/endpoint
WebhookエンドポイントのURLを設定します。キャッシュデータの影響により、URLの更新に1分ほどかかる場合があります。
以下のWebhook URLの検証ルールをすべて満たしていることを確認してください。
- 有効なHTTPS URLである。
- URLの長さが500文字以内である。
リクエスト例
# レート制限
1,000リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
endpoint
String
有効なWebhook URL
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンス例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なWebhook URLが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# Webhookエンドポイントの情報を取得する
GET
https://api.line.me/v2/bot/channel/webhook/endpoint
Webhookエンドポイントの情報を取得します。
リクエスト例
# レート制限
1,000リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
endpoint
String
Webhook URL
active
Boolean
Webhookの利用ステータス。有効の場合のみ、LINEプラットフォームからWebhook URLにWebhookイベントを送信します。
true
:Webhookの利用が有効です。false
:Webhookの利用が無効です。
レスポンス例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
404 | チャネルにWebhook URLが設定されていません。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# Webhookエンドポイントを検証する
POST
https://api.line.me/v2/bot/channel/webhook/test
設定したWebhookエンドポイントがWebhookの検証イベントを受信できるかを確認します。
以下のWebhook URLの検証ルールをすべて満たしていることを確認してください。
- 有効なHTTPS URLである。
- URLの長さが500文字以内である。
リクエスト例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
endpoint
String
検証したいWebhook URL
このエンドポイントは、Request bodyにendpoint
パラメータが含まれるかどうかで動作が変わります。
endpointパラメータがある場合
endpoint
パラメータに指定したエンドポイントURLが有効か検証し、有効であれば指定されたエンドポイントURLにWebhook検証イベントを送信します。
endpointパラメータがない場合
チャネルに設定されているWebhookエンドポイントに、Webhook検証イベントを送信します。チャネルにWebhookエンドポイントが設定されていない場合は 404
が返ります。
# レスポンス
ステータスコード200
とおよび以下の情報を含むJSONオブジェクトを返す。
疎通確認の際は、LINEプラットフォームからWebhook URL(ボットサーバー)へ、Webhookイベントが含まれないHTTP POSTリクエストが送信されます。ステータスコード
200
を返すようにボットサーバーを設計してください。Webhookイベントが含まれないHTTP POSTリクエストの例:
{ "destination": "xxxxxxxxxx", "events": [] }
success
Boolean
LINEプラットフォームからWebhook URLへの疎通結果
true
:成功false
:失敗
false
の場合は、『Messaging APIドキュメント』の「エラーが発生した原因を確認する」を参照してください。
timestamp
String
「共通プロパティ」を参照してください。
statusCode
Number
HTTPステータスコード。Webhookのレスポンスを受信しなかった場合、ステータスコードは0か負の数になります。
reason
String
レスポンスの原因を表します。詳細は下表を参照してください。
detail
String
レスポンスの詳細を表します。詳細は下表を参照してください。
reason (原因) | detail (詳細) | 内容 |
---|---|---|
OK | HTTPステータスコード(例:200 ) | Webhookの送信に成功しました。 |
COULD_NOT_CONNECT | 接続失敗 | Webhookエンドポイントに接続できませんでした。詳しくは、『Messaging APIドキュメント』の「原因が「could_not_connect」の場合」を参照してください。 |
REQUEST_TIMEOUT | Request timeout | リクエストがタイムアウトしました。詳しくは、『Messaging APIドキュメント』の「原因が「request_timeout」の場合」を参照してください。 |
ERROR_STATUS_CODE | HTTPステータスコード(例:400 ) | エラーレスポンスのステータスコードが返ります。詳しくは、『Messaging APIドキュメント』の「原因が「error_status_code」の場合」を参照してください。 |
UNCLASSIFIED | N/A | 不明なエラーです。詳しくは、『Messaging APIドキュメント』の「原因が「unclassified」の場合」を参照してください。 |
レスポンスの例(Webhookの送信に成功した場合)
レスポンスの例(ボットサーバーのSSL/TLS設定が原因でWebhook URLへの疎通に失敗した場合)
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なWebhook URLが指定されています。 |
404 | チャネルにWebhook URLが設定されていません。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# コンテンツ取得
ユーザーがLINE公式アカウントに対して送信したコンテンツを、Webhookで受信したメッセージIDを使うことで取得できます。
# コンテンツを取得する
GET
https://api-data.line.me/v2/bot/message/{messageId}/content
このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me
)です。他のエンドポイントのドメイン名(api.line.me
)とは異なるため、利用時は注意してください。
Webhookで受信したメッセージIDを使って、ユーザーが送信した画像、動画、音声、およびファイルを取得するエンドポイントです。
このエンドポイントは、WebhookイベントオブジェクトのcontentProvider.type
プロパティがline
の場合にのみ利用できます。
ユーザーからデータサイズが大きい動画または音声が送られた場合に、コンテンツのバイナリデータを取得できるようになるまで時間がかかるときがあります。バイナリデータの準備中にコンテンツを取得しようとすると、ステータスコード202
が返されバイナリデータは取得できません。バイナリデータが取得できるかどうかは、動画または音声の取得準備の状況を確認するエンドポイントで確認できます。
なお、ユーザーが送信したコンテンツは、縮小などの変換が内部的に行われる場合があります。
ユーザーが送信したテキストは、Webhookのテキストメッセージオブジェクトで受信できます。Webhookを受信した後で、あらためてテキストを取得するためのAPIはありません。
リクエストの例
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
messageId
メッセージID
# レスポンス
ステータスコード200
とコンテンツのバイナリデータを返します。バイナリデータのファイル形式は、レスポンスのContent-Type
(opens new window)ヘッダーで示されます。
メッセージが送信されてから一定期間後に、コンテンツは自動的に削除されます。コンテンツの保存期間は保証されません。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
404 Not Found
410 Gone
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 動画または音声の取得準備の状況を確認する
GET
https://api-data.line.me/v2/bot/message/{messageId}/content/transcoding
このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me
)です。他のエンドポイントのドメイン名(api.line.me
)とは異なるため、利用時は注意してください。
Webhookで受信したメッセージIDを使って、ユーザーが送信した動画、音声の取得準備の状況を取得するエンドポイントです。
このエンドポイントは、WebhookイベントオブジェクトのcontentProvider.type
プロパティがline
の場合にのみ利用できます。
リクエストの例
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
取得準備の状況。以下のいずれかの値です。
processing
:コンテンツの取得準備中です。succeeded
:コンテンツを取得する準備が完了しました。ユーザーが送信したコンテンツを取得できます。failed
:コンテンツの取得準備に失敗しました。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
400 Bad Request
404 Not Found
410 Gone
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 画像または動画のプレビュー画像を取得する
GET
https://api-data.line.me/v2/bot/message/{messageId}/content/preview
このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me
)です。他のエンドポイントのドメイン名(api.line.me
)とは異なるため、利用時は注意してください。
Webhookで受信したメッセージIDを使って、ユーザーが送信した画像、動画のプレビュー画像を取得するエンドポイントです。プレビュー画像は、実際のコンテンツよりも軽量なデータサイズに変換した画像データです。
このエンドポイントは、WebhookイベントオブジェクトのcontentProvider.type
プロパティがline
の場合にのみ利用できます。
リクエストの例
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
# レスポンス
ステータスコード200
とプレビュー画像のバイナリデータを返します。
メッセージが送信されてから一定期間後に、プレビュー画像は自動的に削除されます。プレビュー画像の保存期間は保証されません。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
400 Bad Request
404 Not Found
410 Gone
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# チャネルアクセストークン
アプリからMessaging APIを呼び出す際に必要となるチャネルアクセストークンを発行、取得、取り消しします。詳しくは、『LINEプラットフォームの基礎知識』の「チャネルアクセストークン」を参照してください。
# チャネルアクセストークンv2.1を発行する
POST
https://api.line.me/oauth2/v2.1/token
任意の有効期間を指定できるチャネルアクセストークンを発行します。このメソッドでは、認証にJWTアサーションを使用できます。
チャネルアクセストークンv2.1は、チャネルごとに30件まで発行できます。上限に達した場合は、追加発行のリクエストは拒否されます。なお、有効期限が切れたチャネルアクセストークンは、発行数としてカウントされません。
リクエストの例
# リクエストヘッダー
Content-Type
application/x-www-form-urlencoded
# リクエストボディ
grant_type
String
client_credentials
client_assertion_type
String
urn:ietf:params:oauth:client-assertion-type:jwt-bearer
をURLエンコードした値
client_assertion
String
JSON Web Tokenアサーションを指定します。JWTアサーションは、クライアント側で生成した上で、アサーション署名キーの秘密鍵で署名する必要があります。
JWTアサーションは、生成されてから30分以内に失効するように設定する必要があります。JWTアサーションの生成について詳しくは、「JWTを生成する」を参照してください。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
access_token
String
チャネルアクセストークン
expires_in
Number
チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数
token_type
String
Bearer
key_id
String
チャネルアクセストークンを識別するための一意のキーID
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
404 | JWTアサーションと紐づく署名キーがチャネルに登録されていません。 |
エラーレスポンスの例
# チャネルアクセストークンv2.1の有効性を検証する
GET
https://api.line.me/oauth2/v2.1/verify
任意の有効期間を指定できるチャネルアクセストークン(チャネルアクセストークンv2.1)の有効性を検証できます。
リクエストの例
# クエリパラメータ
access_token
任意の有効期間を指定できるチャネルアクセストークン(チャネルアクセストークンv2.1)。
# レスポンス
チャネルアクセストークンが有効な場合は、ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
client_id
String
チャネルアクセストークンが発行されたチャネルID。
expires_in
Number
チャネルアクセストークンの有効期限が切れるまでの秒数。
scope
String
チャネルアクセストークンに付与されている権限。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
エラーレスポンスの例
# すべての有効なチャネルアクセストークンv2.1のキーIDを取得する
GET
https://api.line.me/oauth2/v2.1/tokens/kid
すべての有効なチャネルアクセストークンのキーIDを取得します。
リクエストの例
# クエリパラメータ
client_assertion_type
String
urn:ietf:params:oauth:client-assertion-type:jwt-bearer
をURLエンコードした値
client_assertion
String
クライアントが作成し、秘密鍵で署名する必要があるJSON Web Token (JWT) (opens new window)です。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
kids
Array of strings
チャネルアクセストークンのキーIDの配列
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
404 | JWTアサーションと紐づく署名キーがチャネルに登録されていません。 |
エラーレスポンスの例
# チャネルアクセストークンv2.1を取り消す
POST
https://api.line.me/oauth2/v2.1/revoke
チャネルアクセストークンv2.1を取り消します。
以下のような場合に、チャネルアクセストークンを取り消します。
- チャネルアクセストークンを再発行することで古いチャネルアクセストークンが不要になったとき
- チャネルアクセストークンの漏洩が疑われたとき
なお、すでに有効期限が切れているチャネルアクセストークンを取り消す必要はありません。
リクエストの例
# リクエストボディ
client_id
String
チャネルID
client_secret
String
チャネルシークレット
access_token
String
チャネルアクセストークン
# レスポンス
ステータスコード200
と空のレスポンスボディを返します。
無効なチャネルアクセストークンを指定した場合も、エラーレスポンスは発生しません。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
エラーレスポンスの例
# ステートレスチャネルアクセストークンを発行する
POST
https://api.line.me/oauth2/v3/token
15分間だけ有効なチャネルアクセストークンを発行します。発行できる数に制限はありません。ステートレスチャネルアクセストークンを発行すると、取り消すことはできません。
チャネルIDとチャネルシークレットから発行するリクエストの例
JWTアサーションから発行するリクエストの例
# リクエストヘッダー
Content-Type
application/x-www-form-urlencoded
# リクエストボディ
ステートレスチャネルアクセストークンを発行する方法には、次の2つがあります。どちらの方法で発行しても、レスポンスボディの形式は同じになります。
# チャネルIDとチャネルシークレットから発行する
grant_type
String
client_credentials
client_id
String
チャネルID。LINE Developersコンソールで確認できます。
client_secret
String
チャネルシークレット。LINE Developersコンソールで確認できます。
# JWTアサーションから発行する
grant_type
String
client_credentials
client_assertion_type
String
urn:ietf:params:oauth:client-assertion-type:jwt-bearer
をURLエンコードした値
client_assertion
String
JSON Web Tokenアサーションを指定します。JWTアサーションは、クライアント側で生成した上で、アサーション署名キーの秘密鍵で署名する必要があります。
JWTアサーションは、生成されてから30分以内に失効するように設定する必要があります。JWTアサーションの生成について詳しくは、「JWTを生成する」を参照してください。
# レスポンス
ステータスコード200
と、以下の情報を含むJSONオブジェクトを返します。
token_type
String
Bearer
access_token
String
チャネルアクセストークン
expires_in
Number
チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
404 | JWTアサーションと紐づく署名キーがチャネルに登録されていません。 |
エラーレスポンスの例
# 短期のチャネルアクセストークンを発行する
POST
https://api.line.me/v2/oauth/accessToken
30日間有効な短期のチャネルアクセストークンを発行します。
短期のチャネルアクセストークンは、チャネルごとに30件まで発行できます。上限を超過した場合は、最も古いチャネルアクセストークンが取り消されます。なお、有効期限が切れたチャネルアクセストークンは、発行数としてカウントされません。
- Messaging APIのチャネルの場合は、長期のチャネルアクセストークンや任意の有効期間を指定できるチャネルアクセストークンv2.1、ステートレスチャネルアクセストークンを発行できます。詳しくは、『LINEプラットフォームの基礎知識』の「チャネルアクセストークン」を参照してください。
- LINEログインのチャネルのチャネルアクセストークンも、このAPIで発行できます。LINEログインのチャネルのチャネルアクセストークンは、LIFFのサーバーAPIで利用します。
リクエストの例
# APIプレイグラウンド
# レート制限
370リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Content-Type
application/x-www-form-urlencoded
# リクエストボディ
grant_type
String
client_credentials
client_id
String
チャネルID。LINE Developersコンソールで確認できます。
client_secret
String
チャネルシークレット。LINE Developersコンソールで確認できます。
# レスポンス
HTTPステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
access_token
String
短期のチャネルアクセストークン。有効期間は30日です。
チャネルアクセストークンは更新できません。
expires_in
Number
チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数
token_type
String
Bearer
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
429 | レート制限を超過しました。 |
エラーレスポンスの例
# 短期または長期のチャネルアクセストークンの有効性を検証する
POST
https://api.line.me/v2/oauth/verify
短期のチャネルアクセストークンまたは長期のチャネルアクセストークンの有効性を検証できます。
リクエストの例
# リクエストヘッダー
Content-Type
application/x-www-form-urlencoded
# リクエストボディ
access_token
String
短期または長期のチャネルアクセストークン。
# レスポンス
チャネルアクセストークンが有効な場合は、ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
client_id
String
チャネルアクセストークンが発行されたチャネルID。
expires_in
Number
チャネルアクセストークンの有効期限が切れるまでの秒数。
scope
String
チャネルアクセストークンに付与されている権限。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
エラーレスポンスの例
# 短期または長期のチャネルアクセストークンを取り消す
POST
https://api.line.me/v2/oauth/revoke
短期または長期のチャネルアクセストークンを取り消すAPIです。
以下のような場合に、チャネルアクセストークンを取り消します。
- チャネルアクセストークンを再発行することで古いチャネルアクセストークンが不要になったとき
- チャネルアクセストークンの漏洩が疑われたとき
なお、すでに有効期限が切れているチャネルアクセストークンを取り消す必要はありません。
リクエストの例
# APIプレイグラウンド
# リクエストヘッダー
Content-Type
application/x-www-form-urlencoded
# リクエストボディ
access_token
String
チャネルアクセストークン
# レスポンス
ステータスコード200
と空のレスポンスボディを返します。無効なチャネルアクセストークンを指定した場合はエラーが返りません。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なフォーマットのチャネルアクセストークンが指定されています。 |
エラーレスポンスの例
# メッセージ
メッセージを送ったり、送信済みメッセージについての情報を取得したりできます。
POST
/v2/bot/message/reply
POST
/v2/bot/message/push
POST
/v2/bot/message/multicast
POST
/v2/bot/message/narrowcast
GET
/v2/bot/message/progress/narrowcast
POST
/v2/bot/message/broadcast
POST
/v2/bot/chat/loading/start
GET
/v2/bot/message/quota
GET
/v2/bot/message/quota/consumption
GET
/v2/bot/message/delivery/reply
GET
/v2/bot/message/delivery/push
GET
/v2/bot/message/delivery/multicast
GET
/v2/bot/message/delivery/broadcast
POST
/v2/bot/message/validate/reply
POST
/v2/bot/message/validate/push
POST
/v2/bot/message/validate/multicast
POST
/v2/bot/message/validate/narrowcast
POST
/v2/bot/message/validate/broadcast
# 応答メッセージを送る
POST
https://api.line.me/v2/bot/message/reply
ユーザー、グループトーク、または複数人トークからのイベントに対して、応答メッセージを送信するAPIです。応答メッセージを送るには、Webhookイベントオブジェクトに含まれる応答トークンが必要です。
イベントが発生すると、Webhookにより通知されます。応答できるイベントの場合は、応答トークンが発行されます。
LINE公式アカウントがユーザーからのメッセージを受信したあと、メッセージの準備や予約の処理などで返答に少し時間がかかることがあります。そのような場合に、ユーザーにそのまま待機しておいて欲しいことをローディングのアニメーションで視覚的に伝えることができます。詳しくは、『Messaging APIドキュメント』の「ローディングのアニメーションを表示する」を参照してください。
# 応答トークン
応答トークンを使用する際は、以下の点を確認してください。
- 応答トークンは一度のみ使用できます。
- 応答トークンは、Webhookを受信してから1分以内に使用する必要があります。1分を超える場合の使用については、動作は保証されません。
- 再送されたWebhookに含まれる応答トークンも、再送されたWebhookを受信してから1分以内であれば使用できます。ただし、以下の場合は応答トークンを使用できません。
- 元のWebhookに含まれる応答トークンをすでに使用している場合。
- イベントの発生から20分が経過している場合。
応答トークンの時間制限は、予告なく変更される可能性があります。また、ネットワークの遅延などにより、実際に使用できる期間は変動します。
このため、時間制限に依存した実装をしないようにしてください。また、応答トークンは可能な限り早く使用してください。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Content-Type
application/json
Authorization
Bearer {channel access token}
# リクエストボディ
replyToken
String
Webhookで受信する応答トークン
messages
メッセージオブジェクトの配列
送信するメッセージ
最大件数:5
応答メッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。
notificationDisabled
Boolean
true
:メッセージ送信時に、ユーザーに通知されない。false
:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。
デフォルト値はfalse
です。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
sentMessages
Array
送信したメッセージの配列。
最大件数:5
sentMessages.id
Number
送信したメッセージのID。
sentMessages.quoteToken
String
メッセージの引用トークン。引用対象として指定可能なメッセージオブジェクトを送信した場合のみ、レスポンスに含まれます。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | メッセージを送信できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、メッセージは送信されません。
エラーレスポンスの例
# プッシュメッセージを送る
POST
https://api.line.me/v2/bot/message/push
ユーザー、グループトーク、または複数人トークに、任意のタイミングでメッセージを送信するAPIです。
# プッシュメッセージを送信できる条件
プッシュメッセージは、以下のいずれかの条件に当てはまる場合に送信できます。
- LINE公式アカウントを友だち追加しているユーザー
- LINE公式アカウントが参加しているグループトーク、または複数人トーク
- 1対1のトークで、7日以内にLINE公式アカウントへメッセージを送ったユーザー(※)
なお、以下のユーザーに対してプッシュメッセージの送信処理を行った場合、ステータスコード200
が返されますが、実際にはユーザーに送信されません。
- LINEアカウントを削除したユーザー
- プッシュメッセージを送信したLINE公式アカウントをブロックしているユーザー
- プッシュメッセージを送信したLINE公式アカウントを友だち追加していないユーザー(※)
※ユーザーは、友だち追加していないLINE公式アカウントに対しても、メッセージを送ることができます。LINE公式アカウントは、友だちでないユーザーから1対1のトークでメッセージを受け取った場合、メッセージを受け取ってから7日以内であれば、そのユーザーに対してメッセージを送信できます。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Content-Type
application/json
Authorization
Bearer {channel access token}
X-Line-Retry-Key
リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。
# リクエストボディ
to
String
送信先のID。Webhookイベントオブジェクトで返される、userId
、groupId
、またはroomId
の値を使用します。
messages
メッセージオブジェクトの配列
送信するメッセージ
最大件数:5
プッシュメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。
notificationDisabled
Boolean
true
:メッセージ送信時に、ユーザーに通知されない。false
:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。
デフォルト値はfalse
です。
customAggregationUnits
Array of strings
任意の集計単位のユニット名。大文字と小文字は区別されます。たとえばpromotion_a
とpromotion_A
は別のユニットとして扱われます。
最大ユニット数:1
最大文字数:30
使用可能文字種:半角英数字(a
〜z
、A
~Z
、0
~9
)、アンダースコア(_
)
ユニット名の付与について詳しくは、『Messaging APIドキュメント』の「メッセージ送信時に任意の集計単位のユニット名を付与する」を参照してください。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
sentMessages
Array
送信したメッセージの配列。
最大件数:5
sentMessages.id
Number
送信したメッセージのID。
sentMessages.quoteToken
String
メッセージの引用トークン。引用対象として指定可能なメッセージオブジェクトを送信した場合のみ、レスポンスに含まれます。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | メッセージを送信できませんでした。次のような理由が考えられます。
|
409 | 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。 |
429 | リクエスト数が上限を超過しました。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、メッセージは送信されません。
エラーレスポンスの例
# マルチキャストメッセージを送る
POST
https://api.line.me/v2/bot/message/multicast
複数のユーザーに対して同じメッセージを効率よく送信するAPIです。グループトークおよび複数人トークにメッセージを送ることはできません。
なお、1人のユーザーに対してもマルチキャストメッセージでメッセージを送信できますが、送信対象が1人の場合にはプッシュメッセージの利用を推奨します。プッシュメッセージは、低遅延用途でのメッセージの送信に適しています。
# マルチキャストメッセージを送信できる条件
マルチキャストメッセージは、LINE公式アカウントを友だち追加しているユーザーに対して送信できます。
なお、以下のユーザーに対してマルチキャストメッセージの送信処理を行った場合、ステータスコード200
が返されますが、実際にはユーザーに送信されません。
- LINEアカウントを削除したユーザー
- マルチキャストメッセージを送信したLINE公式アカウントをブロックしているユーザー
- マルチキャストメッセージを送信したLINE公式アカウントを友だち追加していないユーザー
- 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー
リクエストの例
# レート制限
200リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Content-Type
application/json
Authorization
Bearer {channel access token}
X-Line-Retry-Key
リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。
# リクエストボディ
to
Array of strings
ユーザーIDの配列。Webhookイベントオブジェクトで返されるuserId
の値を使用します。LINEに表示されるLINE IDは使用しないでください。
最大ユーザーID数:500
messages
メッセージオブジェクトの配列
送信するメッセージ
最大件数:5
マルチキャストメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。
notificationDisabled
Boolean
true
:メッセージ送信時に、ユーザーに通知されない。false
:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。
デフォルト値はfalse
です。
customAggregationUnits
Array of strings
任意の集計単位のユニット名。大文字と小文字は区別されます。たとえばpromotion_a
とpromotion_A
は別のユニットとして扱われます。
最大ユニット数:1
最大文字数:30
使用可能文字種:半角英数字(a
〜z
、A
~Z
、0
~9
)、アンダースコア(_
)
ユニット名の付与について詳しくは、『Messaging APIドキュメント』の「メッセージ送信時に任意の集計単位のユニット名を付与する」を参照してください。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | メッセージを送信できませんでした。次のような理由が考えられます。
|
409 | 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。 |
429 | リクエスト数が上限を超過しました。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、どのユーザーに対してもメッセージは送信されません。
エラーレスポンスの例
# ナローキャストメッセージを送る
POST
https://api.line.me/v2/bot/message/narrowcast
複数のユーザーに、任意のタイミングでメッセージを送信します。送信対象は、属性情報(性別や年齢、OSの種類、地域など)やリターゲティング(オーディエンス)を利用して指定できます。グループトークまたは複数人トークにメッセージを送ることはできません。
ナローキャストメッセージは、LINEプラットフォームがリクエストを受信した後にバックグラウンドで非同期に送信されます。そのため、ナローキャストメッセージを送信するリクエストが成功していたとしても、送信開始後に失敗している可能性があります。メッセージの送信が成功したかどうかは、ナローキャストメッセージの進行状況を取得することで確認できます。
送信対象を特定の条件で絞り込む場合に、タイの20歳未満のユーザーは、メッセージの送信対象から除外されます。
# ナローキャストメッセージを送信できる条件
ナローキャストメッセージは、LINE公式アカウントを友だち追加しているユーザーに対して送信できます。
なお、以下のユーザーを送信対象に含めた場合、ステータスコード202
が返されますが、送信対象からは除外されます。
- LINEアカウントを削除したユーザー
- LINE公式アカウントをブロックしているユーザー
- LINE公式アカウントを友だち追加していないユーザー
- 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー
# 属性情報やオーディエンスを利用したメッセージ送信の制限事項
属性情報やオーディエンスを利用した場合、メッセージの送信条件に応じて、ユーザーのプライバシーを保護するための制限が適用されることがあります。制限に該当した場合、リクエスト送信時もしくはメッセージの送信開始時にエラーになります。
- 送信条件に属性情報を指定するには、LINE公式アカウントのターゲットリーチが100人以上である必要があります。ターゲットリーチが100人未満の場合はステータスコード
403
が返されます。 - 送信条件に属性情報またはオーディエンス(※)を指定した場合、最終的な送信対象が50人以上である必要があります。最終的な送信対象が50人未満の場合にもステータスコード
202
が返されますが、メッセージの送信開始時にエラーとなります。 - 送信条件に1件以上のオーディエンスを指定した場合、各オーディエンス(※)の送信対象がそれぞれ50人以上である必要があります。送信対象が50人未満のオーディエンスが含まれていた場合にもステータスコード
202
が返されますが、メッセージの送信開始時にエラーとなります。
※以下のオーディエンスには、送信対象の人数に関する制限はありません。ただし、他のLINE公式アカウントの下で作成されたオーディエンスについては、以下のオーディエンスであっても制限が適用されます。
- LINE Official Account ManagerやMessaging APIから、ユーザーIDアップロードにより作成されたオーディエンス
- チャットタグオーディエンス
# 当月に配信できるメッセージの残数に関する注意事項
LINE Official Account ManagerおよびMessaging APIでは、メッセージの送信開始から、実際に送信される件数が確定するまでの間、当月に配信できるメッセージの残数に対して送信予定のメッセージ数が予約された状態になります。メッセージの送信開始時点で送信予定のメッセージ数が予約ができない場合は、メッセージの送信に失敗します。
ナローキャストメッセージの場合、実際の送信対象となるユーザー数に関わらず、LINE公式アカウントのターゲットリーチ分の予約が必要となります。そのため、ナローキャストメッセージの送信時には、以下の点に注意してください。
- 当月に配信できるメッセージの残数が、LINE公式アカウントのターゲットリーチに満たない場合、ナローキャストメッセージの送信開始時にエラーとなります。
- 実際の送信対象となるユーザー数が十分に少ないにも関わらず、当月分のメッセージの残数が一時的に枯渇し、ナローキャストメッセージの配信中に他のメッセージの送信ができなくなる場合があります。
これらはナローキャストメッセージの送信時に、メッセージの送信数を制限することによって回避できる場合があります。詳しくは、リクエストボディのリミットオブジェクトを参照してください。
リクエストの例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
X-Line-Retry-Key
リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。
# リクエストボディ
messages
メッセージオブジェクトの配列
送信するメッセージ
最大件数:5
ナローキャストメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。
recipient
Object
レシピエントオブジェクト。オーディエンスや、過去に配信したナローキャストメッセージのリクエストIDを合計10件まで使用して、送信対象を指定します。指定できる演算子オブジェクトの数に上限はありません。
省略すると、LINE公式アカウントを友だち追加したすべてのユーザーが送信対象になります。
filter.demographic
Object
デモグラフィックフィルターオブジェクト。友だちの属性情報を使用して、送信対象をフィルタリングできます。
省略すると、属性が「不明」になっているユーザーを含めた全員に配信されます。
limit
Object
リミットオブジェクト。ナローキャストメッセージの最大送信数を制限する場合に設定します。
notificationDisabled
Boolean
true
:メッセージ送信時に、ユーザーに通知されない。false
:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。
デフォルト値はfalse
です。
# レシピエントオブジェクト
レシピエントオブジェクトは、オーディエンスオブジェクトまたは再配信オブジェクトを表すオブジェクトです。演算子オブジェクトを利用すると、条件を組み合わせて送信対象を指定できます。1回のリクエストごとに、オーディエンスオブジェクトと再配信オブジェクトを合計10件まで指定できます。演算子オブジェクトの数に上限はありません。
# オーディエンスオブジェクト
type
String
audience
audienceGroupId
Number
オーディエンスID。オーディエンスを作成するには、「オーディエンス管理」のAPIを使用します。
# 再配信オブジェクト
type
String
redelivery
requestId
String
過去に配信したナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。
以下の条件をすべて満たすリクエストIDを、requestId
プロパティで指定してください。条件を満たしていないリクエストIDが指定された場合はステータスコード400
が返されます。
- ナローキャストメッセージの配信によって発行されたリクエストIDであること
- 「ナローキャストメッセージの進行状況を取得する」エンドポイントで取得する
acceptedTime
プロパティの値(タイムスタンプ)から14日間(336時間)未満の配信であること - 送信処理が完了していること(「ナローキャストメッセージの進行状況を取得する」で、レスポンスの
phase
プロパティの値がsucceeded
であること)
# 演算子オブジェクト
積集合(AND)、和集合(OR)、差集合(NOT)を使用して、複数のレシピエントオブジェクトから、新たなレシピエントオブジェクトを作成できます。
type
String
operator
and
レシピエントオブジェクトの配列
配列で指定したレシピエントオブジェクトの積集合(AND)を、新たなレシピエントオブジェクトとします。
or
レシピエントオブジェクトの配列
配列で指定したレシピエントオブジェクトの和集合(OR)を、新たなレシピエントオブジェクトとします。
not
レシピエントオブジェクト
指定したレシピエントオブジェクトを配信対象外にした、新たなレシピエントオブジェクトとします。
※and
プロパティ、or
プロパティ、not
プロパティのいずれか1つだけ、必ず指定してください。また、空配列は指定できません。
レシピエントオブジェクトの例
# デモグラフィックフィルターオブジェクト
デモグラフィックフィルターオブジェクトは、送信対象をフィルタリングする条件(性別、年齢、OSの種類、地域、友だち期間)を表すオブジェクトです。演算子オブジェクトを利用すると、条件を組み合わせて送信対象をフィルタリングできます。
- 属性情報は約3日前(前後する可能性があります)の属性情報を元に絞り込みます。
- 属性を指定しない場合は、属性が「不明」になっているユーザーを含めた全員に配信されます。
- 属性情報を利用するには、100人以上のターゲットリーチが必要です。
- ターゲットリーチが100人未満の場合はステータスコード
403
が返されます。
- ターゲットリーチが100人未満の場合はステータスコード
# 性別
type
String
gender
oneOf
Array of strings
指定した性別を送信対象とします。以下のいずれかの値を指定します。
male
female
# 年齢
年齢の範囲を指定してフィルタリングします。
type
String
age
gte
String
指定した年齢以上を送信対象とします。
以下のいずれかの値を指定します。ただし、lt
プロパティで指定した値より小さい値を指定してください。
age_15
age_20
age_25
age_30
age_35
age_40
age_45
age_50
age_55
age_60
age_65
age_70
lt
String
指定した年齢未満を送信対象とします。
以下のいずれかの値を指定します。ただし、gte
プロパティで指定した値より大きい値を指定してください。
age_15
age_20
age_25
age_30
age_35
age_40
age_45
age_50
age_55
age_60
age_65
age_70
※gte
プロパティまたはlt
プロパティの両方またはいずれか一方を、必ず指定してください。
# OSの種類
type
String
appType
oneOf
Array of strings
指定したOSを送信対象とします。以下のいずれかの値を指定します。
ios
android
# 地域
type
String
area
oneOf
Array of strings
指定した地域を送信対象とします。以下のいずれかの値を指定します。
日本 // JP (country code=392)
jp_01
:北海道 // Hokkaidojp_02
:青森県 // Aomorijp_03
:岩手県 // Iwatejp_04
:宮城県 // Miyagijp_05
:秋田県 // Akitajp_06
:山形県 // Yamagatajp_07
:福島県 // Fukushimajp_08
:茨城県 // Ibarakijp_09
:栃木県 // Tochigijp_10
:群馬県 // Gunmajp_11
:埼玉県 // Saitamajp_12
:千葉県 // Chibajp_13
:東京都 // Tokyojp_14
:神奈川県 // Kanagawajp_15
:新潟県 // Niigatajp_16
:富山県 // Toyamajp_17
:石川県 // Ishikawajp_18
:福井県 // Fukuijp_19
:山梨県 // Yamanashijp_20
:長野県 // Naganojp_21
:岐阜県 // Gifujp_22
:静岡県 // Shizuokajp_23
:愛知県 // Aichijp_24
:三重県 // Miejp_25
:滋賀県 // Shigajp_26
:京都府 // Kyotojp_27
:大阪府 // Osakajp_28
:兵庫県 // Hyougojp_29
:奈良県 // Narajp_30
:和歌山県 // Wakayamajp_31
:鳥取県 // Tottorijp_32
:島根県 // Shimanejp_33
:岡山県 // Okayamajp_34
:広島県 // Hiroshimajp_35
:山口県 // Yamaguchijp_36
:徳島県 // Tokushimajp_37
:香川県 // Kagawajp_38
:愛媛県 // Ehimejp_39
:高知県 // Kouchijp_40
:福岡県 // Fukuokajp_41
:佐賀県 // Sagajp_42
:長崎県 // Nagasakijp_43
:熊本県 // Kumamotojp_44
:大分県 // Oitajp_45
:宮崎県 // Miyazakijp_46
:鹿児島県 // Kagoshimajp_47
:沖縄県 // Okinawa
台湾 // TW (country code=158)
tw_01
:台北市 // Taipei Citytw_02
:新北市 // New Taipei Citytw_03
:桃園市 // Taoyuan Citytw_04
:台中市 // Taichung Citytw_05
:台南市 // Tainan Citytw_06
:高雄市 // Kaohsiung Citytw_07
:基隆市 // Keelung Citytw_08
:新竹市 // Hsinchu Citytw_09
:嘉義市 // Chiayi Citytw_10
:新竹県 // Hsinchu Countytw_11
:苗栗県 // Miaoli Countytw_12
:彰化県 // Changhua Countytw_13
:南投県 // Nantou Countytw_14
:雲林県 // Yunlin Countytw_15
:嘉義県 // Chiayi Countytw_16
:屏東県 // Pingtung Countytw_17
:宜蘭県 // Yilan Countytw_18
:花蓮県 // Hualien Countytw_19
:台東県 // Taitung Countytw_20
:澎湖県 // Penghu Countytw_21
:金門県 // Kinmen Countytw_22
:連江県 // Lienchiang County
タイ // TH (country code=764)
th_01
:バンコク // Bangkokth_02
:パタヤ // Pattayath_03
:北部 // Northernth_04
:中央部 // Centralth_05
:南部 // Southernth_06
:東部 // Easternth_07
:東北部 // NorthEasternth_08
:西部 // Western
# 友だち期間
友だち期間の範囲を指定してフィルタリングします。
type
String
subscriptionPeriod
gte
String
指定した日数以上を送信対象とします。
以下のいずれかの値を指定します。ただし、lt
プロパティで指定した値より小さい値を指定してください。
day_7
day_30
day_90
day_180
day_365
lt
String
指定した日数未満を送信対象とします。
以下のいずれかの値を指定します。ただし、gte
プロパティで指定した値より大きい値を指定してください。
day_7
day_30
day_90
day_180
day_365
※gte
プロパティまたはlt
プロパティの両方またはいずれか一方を、必ず指定してください。
# 演算子オブジェクト
積集合(AND)、和集合(OR)、差集合(NOT)を使用して、複数のデモグラフィックフィルターオブジェクトから、新たなデモグラフィックフィルターオブジェクトを作成できます。1回のリクエストごとに、デモグラフィックフィルターオブジェクトは、合計10件まで指定できます。
type
String
operator
and
デモグラフィックフィルターオブジェクトの配列
配列で指定したデモグラフィックフィルターオブジェクトの積集合(AND)を、新たなデモグラフィックフィルターオブジェクトとします。
or
デモグラフィックフィルターオブジェクトの配列
配列で指定したデモグラフィックフィルターオブジェクトの和集合(OR)を、新たなデモグラフィックフィルターオブジェクトとします。
not
デモグラフィックフィルターオブジェクト
指定したデモグラフィックフィルターオブジェクトを配信対象外にした、新たなデモグラフィックフィルターオブジェクトとします。
※and
プロパティ、or
プロパティ、not
プロパティのいずれか1つだけ、必ず指定してください。また、空配列は指定できません。
性別を使用してフィルタリングするデモグラフィックフィルターオブジェクトの例
# リミットオブジェクト
リミットオブジェクトは、ナローキャストメッセージの最大送信数を制限する場合に設定します。
max
Number
ナローキャストメッセージの最大送信数。このナローキャストメッセージによる送信数を制限する場合に指定します。なお送信対象は、無作為に抽出されます。
upToRemainingQuota
Boolean
true
を指定すると、配信可能な上限数の範囲内でメッセージを送信します。デフォルト値はfalse
です。なお送信対象は、無作為に抽出されます。
リミットオブジェクトの例
max
プロパティおよびupToRemainingQuota
プロパティの設定値と、メッセージの予約数および最大送信数の関係は以下のとおりです。
max プロパティ | upToRemainingQuota プロパティ | 予約数および最大送信数 |
---|---|---|
未指定 | false | ターゲットリーチの数 |
任意の数値 | false | ターゲットリーチの数と、max プロパティのうちの最小値 |
未指定 | true | ターゲットリーチの数と、当月分の上限目安のうちの最小値 |
任意の数値 | true | ターゲットリーチの数、当月分の上限目安、max プロパティのうちの最小値 |
# レスポンス
HTTPステータスコード202
と空のJSONオブジェクトを返します。
ナローキャストメッセージの送信は非同期に行われます。ナローキャストメッセージの送信状況を確認する方法について詳しくは、「ナローキャストメッセージの進行状況を取得する」を参照してください。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | メッセージを送信できませんでした。次のような理由が考えられます。
|
403 | 送信対象が不足しています。詳しくは、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。 |
409 | 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。 |
429 | リクエスト数が上限を超過しました。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、どのユーザーに対してもメッセージは送信されません。
エラーレスポンスの例
# ナローキャストメッセージの進行状況を取得する
GET
https://api.line.me/v2/bot/message/progress/narrowcast
ナローキャストメッセージの進行状況を取得します。
送信対象のユーザーの属性を推測できないようにするために、送信対象が一定数よりも少ない場合はナローキャストメッセージを送信できません。詳しくは、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。
acceptedTime
プロパティの値(タイムスタンプ)から14日(336時間)以上経過すると、進行状況は取得できません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
requestId
ナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。
# レスポンス
HTTPステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
phase
String
進行状況。以下のいずれかの値です。
waiting
:送信準備ができていません。フィルタリングなどを行っています。sending
:送信中です。succeeded
:送信処理が完了しました。これは、ユーザーがメッセージを正常に受信したことを示していません。failed
:送信が失敗しました。failedDescription
プロパティで失敗した理由を確認できます。
successCount
Number
メッセージの受信に成功したユーザー数(※)
failureCount
Number
メッセージの受信に失敗したユーザー数(※)。
phase
がsucceeded
の場合でも、failureCount
が0でない限りは、ナローキャストメッセージを受信できていないユーザーがいます。たとえば、ナローキャストメッセージを送信中に、ユーザーがLINE公式アカウントをブロックした場合はfailureCount
に加算されます。
targetCount
Number
メッセージが配信される予定のユーザー数(※)
failedDescription
String
送信が失敗した理由。phase
プロパティがfailed
の場合にのみ含まれます。
errorCode
Number
エラーの概要。phase
プロパティがfailed
の場合にのみ含まれます。
以下のいずれかの値が返されます。
1
:内部エラーが発生しました。2
:送信対象が少なすぎたためエラーになりました。3
:すでに受理されたリクエストを再試行したため、競合エラーが発生しました。4
:送信対象が50人未満のオーディエンスが、送信条件に含まれています。
acceptedTime
String
ナローキャストメッセージ送信のリクエストを受け付けた時間をミリ秒で表します。
- フォーマット:ISO 8601 (opens new window)(例:
2020-12-03T10:15:30.121Z
) - タイムゾーン:UTC
completedTime
String
ナローキャストメッセージの送信を完了した時間をミリ秒で表します。phase
プロパティがsucceeded
またはfailed
の場合にのみ返されます。
- フォーマット:ISO 8601 (opens new window)(例:
2020-12-03T10:15:30.121Z
) - タイムゾーン:UTC
※phase
プロパティがwaiting
の場合は取得できません。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なリクエストIDが指定されています。 |
404 | 進行状況が取得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ブロードキャストメッセージを送る
POST
https://api.line.me/v2/bot/message/broadcast
LINE公式アカウントと友だちになっているすべてのユーザーに、任意のタイミングでメッセージを送信します。
リクエストの例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Content-Type
application/json
Authorization
Bearer {channel access token}
X-Line-Retry-Key
リトライキー。任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。リトライキーはLINEから提供されません。開発者自身が一意のリトライキーを生成する必要があります。詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。
# リクエストボディ
messages
メッセージオブジェクトの配列
送信するメッセージ
最大件数:5
ブロードキャストメッセージのメッセージオブジェクトを検証するエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。
notificationDisabled
Boolean
true
:メッセージ送信時に、ユーザーに通知されない。false
:メッセージ送信時に、ユーザーに通知される。ただし、LINEで通知をオフにしている場合は通知されません。
デフォルト値はfalse
です。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なメッセージオブジェクトが指定されています。 |
409 | 同じリトライキーを含むリクエストがすでに受理されています。詳しくは、「APIリクエストを再試行する」の「すでにリクエストが受理されていた場合のレスポンス」を参照してください。 |
429 | リクエスト数が上限を超過しました。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、メッセージは送信されません。
エラーレスポンスの例
# ローディングのアニメーションを表示する
POST
https://api.line.me/v2/bot/chat/loading/start
ユーザーとLINE公式アカウントの1対1のトークにおいて、ローディングのアニメーションを表示します。
ローディングのアニメーションは指定した秒数(5秒〜60秒)が経過するか、表示中にLINE公式アカウントからメッセージが届くと自動的に消えます。
ローディングのアニメーションは、ユーザーが対象のLINE公式アカウントとのトーク画面を表示しているときのみ表示されます。ユーザーがトーク画面を表示していないときに、ローディングのアニメーションを表示するリクエストを行っても、通知は行われません。また、その後にユーザーがトーク画面を開いてもアニメーションは表示されません。
ローディングのアニメーションが表示されている間に再び表示のリクエストを行うと、アニメーションはそのまま表示され続け、表示が消えるまでの時間は2回目のリクエストで指定した秒数に上書きされます。
ローディングのアニメーションが表示されるLINEのバージョンは以下のとおりです。
- iOS版またはAndroid版のLINE:13.16.0以降
詳しくは、『Messaging APIドキュメント』の「ローディングのアニメーションを表示する」を参照してください。
リクエストの例
# レート制限
100リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Content-Type
application/json
Authorization
Bearer {channel access token}
# リクエストボディ
chatId
String
ローディングのアニメーションを表示する対象ユーザーのユーザーID。
ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。
loadingSeconds
Number
ローディングのアニメーションを表示する秒数。5
、10
、15
、20
、25
、30
、35
、40
、45
、50
、55
、60
のいずれかの値を指定できます。
デフォルト値は20
です。
# レスポンス
ステータスコード202
と空のJSONオブジェクトを返します。
なお、以下のユーザーを表示先に指定してリクエストを行った場合、ステータスコード202
が返りますが、実際にはローディングのアニメーションは表示されません。
- LINE公式アカウントとのトーク画面を開いていないユーザー
- LINE公式アカウントを友だち追加していないユーザー
- LINE公式アカウントをブロックしているユーザー
- LINEアカウントを削除したユーザー
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | ローディングのアニメーションを表示できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、ローディングのアニメーションは表示されません。
エラーレスポンスの例
# 当月に送信できるメッセージ数の上限目安を取得する
GET
https://api.line.me/v2/bot/message/quota
当月に送信できるメッセージ数の上限目安を取得します。無料メッセージ数と追加メッセージ数を合わせた値が返されます。
このエンドポイントで取得できるメッセージ数には、LINE Official Account Managerから送信するメッセージの数も含まれます。
追加メッセージの上限は、LINE Official Account Managerで設定します。設定方法について詳しくは、『LINEヤフー for Business』の「利用と請求(プラン変更やお支払い関連の管理) (opens new window)」を参照してください。
リクエストの例
# APIプレイグラウンド
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
type
String
上限目安が設定されているかどうかを示す値。以下のどちらかになります。
none
:上限目安が未設定であることを示します。limited
:上限目安が設定されていることを示します。
value
Number
当月に送信できるメッセージ数の上限目安。type
プロパティがlimited
の場合にのみ返されます。
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# 当月のメッセージ利用状況を取得する
GET
https://api.line.me/v2/bot/message/quota/consumption
当月に送信されたメッセージの数を取得します。
この操作により取得されるメッセージ数には、LINE Official Account Managerから送信するメッセージの数も含まれます。
この操作により取得されるメッセージ数は概算です。正確なメッセージ送信数を取得するには、LINE Official Account Managerを使用するか、送信済みのメッセージ数を取得するAPI操作を実行してください。
リクエストの例
# APIプレイグラウンド
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
totalUsage
Number
当月に送信されたメッセージの数
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# 送信済みの応答メッセージの数を取得する
GET
https://api.line.me/v2/bot/message/delivery/reply
/bot/message/reply
エンドポイントを使って送信されたメッセージの数を取得します。
この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。
リクエストの例
# APIプレイグラウンド
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
date
メッセージが送信された日付
- フォーマット:
yyyyMMdd
(例:20191231
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
集計処理の状態。以下のいずれかの値です。
ready
:メッセージ数を取得できます。unready
:date
に指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。out_of_service
:date
に指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。
success
Number
date
に指定した日付に、Messaging APIを使って送信されたメッセージの数。status
の値がready
の場合にのみ、レスポンスに含まれます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なフォーマットの日付が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 送信済みのプッシュメッセージの数を取得する
GET
https://api.line.me/v2/bot/message/delivery/push
/bot/message/push
エンドポイントを使って送信されたメッセージの数を取得します。
この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。
リクエストの例
# APIプレイグラウンド
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
date
メッセージが送信された日付
- フォーマット:
yyyyMMdd
(例:20191231
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
集計処理の状態。以下のいずれかの値です。
ready
:メッセージ数を取得できます。unready
:date
に指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。out_of_service
:date
に指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。
success
Number
date
に指定した日付に、Messaging APIを使って送信されたメッセージの数。status
の値がready
の場合にのみ、レスポンスに含まれます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なフォーマットの日付が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 送信済みのマルチキャストメッセージの数を取得する
GET
https://api.line.me/v2/bot/message/delivery/multicast
/bot/message/multicast
エンドポイントを使って送信されたメッセージの数を取得します。
この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。
リクエストの例
# APIプレイグラウンド
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
date
メッセージが送信された日付
- フォーマット:
yyyyMMdd
(例:20191231
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
集計処理の状態。以下のいずれかの値です。
ready
:メッセージ数を取得できます。unready
:date
に指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。out_of_service
:date
に指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。
success
Number
date
に指定した日付に、Messaging APIを使って送信されたメッセージの数。status
の値がready
の場合にのみ、レスポンスに含まれます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なフォーマットの日付が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 送信済みのブロードキャストメッセージの数を取得する
GET
https://api.line.me/v2/bot/message/delivery/broadcast
/bot/message/broadcast
エンドポイントを使って送信されたメッセージの数を取得します。
この操作により取得されるメッセージ数に、LINE Official Account Managerから送信されたメッセージの数は含まれません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
date
メッセージが送信された日付
- フォーマット:
yyyyMMdd
(例:20191231
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
集計処理の状態。以下のいずれかの値です。
ready
:メッセージ数を取得できます。unready
:date
に指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。out_of_service
:date
に指定した日付が、集計システムの稼働開始日(2018年3月31日)より前です。
success
Number
date
に指定した日付に、Messaging APIを使って送信されたメッセージの数。status
の値がready
の場合にのみ、レスポンスに含まれます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なフォーマットの日付が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 応答メッセージのメッセージオブジェクトを検証する
POST
https://api.line.me/v2/bot/message/validate/reply
メッセージオブジェクトの配列が、応答メッセージを送るエンドポイントのリクエストボディのmessages
プロパティの値として有効かを検証します。messages
プロパティ以外のプロパティの値が有効かは検証しません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
messages
Array of objects
検証したいメッセージオブジェクトの配列
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なメッセージオブジェクトが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)
エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)
# プッシュメッセージのメッセージオブジェクトを検証する
POST
https://api.line.me/v2/bot/message/validate/push
メッセージオブジェクトの配列が、プッシュメッセージを送るエンドポイントのリクエストボディのmessages
プロパティの値として有効かを検証します。messages
プロパティ以外のプロパティの値が有効かは検証しません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
messages
Array of objects
検証したいメッセージオブジェクトの配列
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なメッセージオブジェクトが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)
エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)
# マルチキャストメッセージのメッセージオブジェクトを検証する
POST
https://api.line.me/v2/bot/message/validate/multicast
メッセージオブジェクトの配列が、マルチキャストメッセージを送るエンドポイントのリクエストボディのmessages
プロパティの値として有効かを検証します。messages
プロパティ以外のプロパティの値が有効かは検証しません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
messages
Array of objects
検証したいメッセージオブジェクトの配列
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なメッセージオブジェクトが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)
エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)
# ナローキャストメッセージのメッセージオブジェクトを検証する
POST
https://api.line.me/v2/bot/message/validate/narrowcast
メッセージオブジェクトの配列が、ナローキャストメッセージを送るエンドポイントのリクエストボディのmessages
プロパティの値として有効かを検証します。messages
プロパティ以外のプロパティの値が有効かは検証しません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
messages
Array of objects
検証したいメッセージオブジェクトの配列
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なメッセージオブジェクトが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)
エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)
# ブロードキャストメッセージのメッセージオブジェクトを検証する
POST
https://api.line.me/v2/bot/message/validate/broadcast
メッセージオブジェクトの配列が、ブロードキャストメッセージを送るエンドポイントのリクエストボディのmessages
プロパティの値として有効かを検証します。messages
プロパティ以外のプロパティの値が有効かは検証しません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
messages
Array of objects
検証したいメッセージオブジェクトの配列
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なメッセージオブジェクトが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例(メッセージオブジェクトを最大件数より多く指定した場合)
エラーレスポンスの例(テキストメッセージの文字数を最大文字数より多く指定した場合)
# APIリクエストを再試行する
プッシュメッセージ、マルチキャストメッセージ、ナローキャストメッセージ、ブロードキャストメッセージに、リトライキー(X-Line-Retry-Key
)をHTTPヘッダーに含めることで、同じAPIリクエストを重複して処理しないように再試行できます。
LINEプラットフォーム側のリトライキーの管理期間は24時間です。同じリトライキーを24時間を超えて使用すると、新しいAPIリクエストとして扱われます。
APIリクエストの再試行について詳しくは、『Messaging APIドキュメント』の「失敗したAPIリクエストを再試行する」を参照してください。
同じリトライキーを24時間を超えて使用すると、同じリトライキーを含むAPIリクエストがすでに成功していても、新しいAPIリクエストとして成功します。その結果、重複したメッセージが送信されてしまいます。
リクエストの例
# リクエストヘッダー
X-Line-Retry-Key
任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)
※ APIリクエストを再試行する場合は必須です。
# すでにリクエストが受理されていた場合のレスポンス
同じリトライキーを含むリクエストがすでに受理されていた場合は、ステータスコード409
と、すでに受理されたリクエストのリクエストIDを示すx-line-accepted-request-id
ヘッダー、および以下の情報を含むJSONオブジェクトを返します。
message
String
すでにリクエストが受理されていることを知らせるメッセージ
sentMessages
Array
送信したメッセージの配列。プッシュメッセージを送信した場合のみ、レスポンスに含まれます。
最大件数:5
sentMessages.id
Number
送信したメッセージのID。プッシュメッセージを送信した場合のみ、レスポンスに含まれます。
sentMessages.quoteToken
String
メッセージの引用トークン。プッシュメッセージで、引用対象として指定可能なメッセージオブジェクトを送信した場合のみ、レスポンスに含まれます。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
レスポンスの例
# オーディエンス管理
オーディエンスを作成、更新、有効化、削除できます。オーディエンスは、ナローキャストメッセージを配信する際に指定します。
POST
/v2/bot/audienceGroup/upload
POST
/v2/bot/audienceGroup/upload/byFile
PUT
/v2/bot/audienceGroup/upload
PUT
/v2/bot/audienceGroup/upload/byFile
POST
/v2/bot/audienceGroup/click
POST
/v2/bot/audienceGroup/imp
PUT
/v2/bot/audienceGroup/{audienceGroupId}/updateDescription
DELETE
/v2/bot/audienceGroup/{audienceGroupId}
GET
/v2/bot/audienceGroup/{audienceGroupId}
GET
/v2/bot/audienceGroup/list
GET
/v2/bot/audienceGroup/shared/{audienceGroupId}
GET
/v2/bot/audienceGroup/shared/list
なお、オーディエンスは、LINE Official Account Manager (opens new window)でも作成できます。詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。
オーディエンス | 作成方法 |
---|---|
ユーザーIDアップロード用のオーディエンス | |
メッセージクリックオーディエンス | |
メッセージインプレッションオーディエンス | |
チャットタグオーディエンス | LINE Official Account Manager (opens new window) |
追加経路オーディエンス | LINE Official Account Manager (opens new window) |
予約オーディエンス | LINE Official Account Manager (opens new window) |
リッチメニューインプレッションオーディエンス | LINE Official Account Manager (opens new window) |
リッチメニュークリックオーディエンス | LINE Official Account Manager (opens new window) |
ウェブトラフィックオーディエンス | |
アプリイベントオーディエンス | LINE広告 (opens new window) |
動画視聴オーディエンス | LINE広告 (opens new window) |
画像クリックオーディエンス | LINE広告 (opens new window) |
- 日本(JP)、タイ(TH)、台湾(TW)のユーザーが作成したLINE公式アカウントの場合のみ、オーディエンスを利用できます。
- Messaging APIでは、次のタイプのオーディエンスは作成できません。
- チャットタグオーディエンス
- 追加経路オーディエンス
- 予約オーディエンス
- リッチメニューインプレッションオーディエンス
- リッチメニュークリックオーディエンス
- ウェブトラフィックオーディエンス
- アプリイベントオーディエンス
- 動画視聴オーディエンス
- 画像クリックオーディエンス
# オーディエンス管理に関するエラーの詳細
オーディエンス管理のエンドポイントでエラーが発生した際の詳細は、JSONレスポンスのdetails[].message
プロパティに含まれます。主なエラーの詳細は以下のとおりです。
メッセージ | 説明 |
---|---|
AUDIENCE_GROUP_CAN_NOT_UPLOAD_STATUS_EXPIRED | オーディエンスを作成してから180日(15,552,000秒)を超えたため、このオーディエンスは使用できません。 |
AUDIENCE_GROUP_COUNT_MAX_OVER | 作成できるオーディエンス数の上限(合計1,000件)に達しています。 |
AUDIENCE_GROUP_NAME_SIZE_OVER | オーディエンスの名前が長すぎます。 |
AUDIENCE_GROUP_NAME_WRONG | オーディエンスの名前に、無効な文字(例:\n などの制御コード)を指定しました。 |
AUDIENCE_GROUP_NAME_EMPTY | オーディエンスの名前が空であるか、空白文字のみを指定しました。 |
AUDIENCE_GROUP_NOT_FOUND | オーディエンスが見つかりません。 |
AUDIENCE_GROUP_REQUESTID_DUPLICATE | 既存のオーディエンスに指定したリクエストIDと同じ値を指定しました。 |
AUDIENCE_GROUP_UPLOAD_DESCRIPTION_SIZE_OVER | オーディエンスの説明が長すぎます。 |
REQUEST_NOT_FOUND | 指定したリクエストIDが誤っているか、指定したリクエストIDでオーディエンスを作成する準備ができていません。 |
TOO_OLD_MESSAGES | メッセージを配信してから60日(5,184,000秒)を超えた場合、そのメッセージ(リクエストID)に対するオーディエンスは作成できません。 |
UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMAT |
|
UPLOAD_AUDIENCE_GROUP_NO_VALID_AUDIENCE_IDS |
|
UPLOAD_AUDIENCE_GROUP_TOO_MANY_AUDIENCE_IDS | ユーザーIDまたはIFAの登録上限に達しています。 |
WRONG_BOT_ID | 指定したリクエストIDに含まれるボットIDが、アクセストークンを発行したチャネルに関連付けられたボットと異なります。 |
ALREADY_ACTIVE | オーディエンスグループは、すでに有効です。 |
# 対処方法
UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMAT
が返る場合は、プロフィール情報を取得するエンドポイントを使って、JSONに指定しているすべてのユーザーIDのプロフィール情報を取得してください。ステータスコード200
以外を返すユーザーIDをJSONから除外したうえで、失敗したエンドポイントを再実行してください。
# ユーザーIDアップロード用のオーディエンスを作成する(JSON指定)
POST
https://api.line.me/v2/bot/audienceGroup/upload
ユーザーIDアップロード用のオーディエンスを作成します。
このエンドポイントでは、送信対象アカウントをJSONで指定します。送信対象アカウントをテキストファイルで指定するエンドポイントも利用できます。
ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。
# オーディエンスに追加できるユーザーの条件
ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202
が返され、オーディエンスに追加されます。
- LINEアカウントを削除したユーザー
- オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
- オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー
なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。
ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId
)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。
送信対象アカウントをIFAで指定することもできますが、この機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。自社のLINE公式アカウントでご利用になりたいお客様は、担当営業までご連絡いただくか、弊社パートナー (opens new window)にお問い合わせください。
オーディエンスの仕様は以下のとおりです。
項目 | 条件 |
---|---|
チャネルあたりのオーディエンス数 | 最大1,000件 |
オーディエンスの保存期間 | 最大180日間(15,552,000秒間) |
オーディエンスに、1リクエストでアップロードできるユーザーIDまたはIFAの数 | JSONを使用する場合:最大10,000件 ファイルを使用する場合:最大1,500,000件 |
オーディエンスあたりのユーザー数 | ユーザーIDアップロード用のオーディエンス:制限なし |
ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。
JSONのaudiences
プロパティで無効なユーザーIDが指定されていた場合、エラーレスポンス(details[].message
: UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMAT
)が返り、オーディエンスの作成に失敗します。このエンドポイントを実行する前に、audiences
プロパティに含まれるすべてのユーザーIDが有効であることを確認してください。
ユーザーIDが有効か確認するには、プロフィール情報を取得するエンドポイントを使用してください。ユーザーIDが有効な場合は、HTTPステータスコード200
が返ります。200
以外が返ってきた場合、そのユーザーIDは無効のため、audiences
プロパティには含めないようにしてください。
オーディエンス作成時にJSONのaudiences
プロパティが省略された、または空配列が指定された場合、ユーザーを含まない空のオーディエンスが作成されます。
空のオーディエンスは、オーディエンスに含まれるユーザーの数(audienceGroup.audienceCount
)が0であり、配信に利用できません。そのため、レスポンスのaudienceGroup.status
はIN_PROGRESS
のまま、READY
にはなりません。
ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。
そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
description
String
オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCE
とaudience
は同じ名前と判定されます。
最大文字数:120
isIfaAudience
Boolean
- 送信対象アカウントをIFAで指定する場合は、
true
を指定します。 - 送信対象アカウントをユーザーIDで指定する場合は、
false
を指定するか、isIfaAudience
プロパティを省略します。
uploadDescription
String
ジョブ(jobs[].description
)に登録する説明
最大文字数:300
audiences
Array
ユーザーIDまたはIFAの配列。
省略すると、空のオーディエンスが作成されます。
最大件数:10,000
audiences[].id
String
ユーザーIDまたはIFA。空配列も指定できます。
空配列の場合、空のオーディエンスが作成されます。
# レスポンス
ステータスコード202
と以下の情報を含むJSONオブジェクトを返します。
オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。
audienceGroupId
Number
オーディエンスID
createRoute
String
オーディエンスの作成方法。
MESSAGING_API
:Messaging APIで作成したオーディエンス
type
String
オーディエンスのタイプ。
UPLOAD
:ユーザーIDアップロード用のオーディエンス
description
String
オーディエンスの名前
created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
permission
String
作成したオーディエンスに対する更新権限。
READ_WRITE
:オーディエンスを利用、更新できます。
expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。
isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
429 | 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ユーザーIDアップロード用のオーディエンスを作成する(ファイル指定)
POST
https://api-data.line.me/v2/bot/audienceGroup/upload/byFile
このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me
)です。他のエンドポイントのドメイン名(api.line.me
)とは異なるため、利用時は注意してください。
ユーザーIDアップロード用のオーディエンスを作成します。
このエンドポイントでは、送信対象アカウントをテキストファイルで指定します。送信対象アカウントをJSONで指定するエンドポイントも利用できます。
ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。
# オーディエンスに追加できるユーザーの条件
ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202
が返され、オーディエンスに追加されます。
- LINEアカウントを削除したユーザー
- オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
- オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー
なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。
ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId
)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。
送信対象アカウントをIFAで指定することもできますが、この機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。自社のLINE公式アカウントでご利用になりたいお客様は、担当営業までご連絡いただくか、弊社パートナー (opens new window)にお問い合わせください。
オーディエンスの仕様は以下のとおりです。
項目 | 条件 |
---|---|
チャネルあたりのオーディエンス数 | 最大1,000件 |
オーディエンスの保存期間 | 最大180日間(15,552,000秒間) |
オーディエンスに、1リクエストでアップロードできるユーザーIDまたはIFAの数 | JSONを使用する場合:最大10,000件 ファイルを使用する場合:最大1,500,000件 |
オーディエンスあたりのユーザー数 | ユーザーIDアップロード用のオーディエンス:制限なし |
ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。
ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。
そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。
リクエストの例
テキストファイルの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
multipart/form-data
# リクエストボディ
description
String
オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCE
とaudience
は同じ名前と判定されます。
最大文字数:120
isIfaAudience
Boolean
- 送信対象アカウントをIFAで指定する場合は、
true
を指定します。 - 送信対象アカウントをユーザーIDで指定する場合は、
false
を指定するか、isIfaAudience
プロパティを省略します。
uploadDescription
String
ジョブ(jobs[].description
)に登録する説明
最大文字数:300
file
File
ユーザーIDまたはIFAを、1行に1件入力したテキストファイル。Content-Typeは、text/plain
を指定してください。
最大ファイル数:1
最大行数:1,500,000
# レスポンス
ステータスコード202
と以下の情報を含むJSONオブジェクトを返します。
オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。
audienceGroupId
Number
オーディエンスID
createRoute
String
オーディエンスの作成方法。
MESSAGING_API
:Messaging APIで作成したオーディエンス
type
String
オーディエンスのタイプ。
UPLOAD
:ユーザーIDアップロード用のオーディエンス
description
String
オーディエンスの名前
created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
permission
String
作成したオーディエンスに対する更新権限。
READ_WRITE
:オーディエンスを利用、更新できます。
expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。
isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
415 | file プロパティに、サポートされていないメディア形式のファイルが指定されている。 |
429 | 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ユーザーIDアップロード用のオーディエンスにユーザーIDまたはIFAを追加する(JSON指定)
PUT
https://api.line.me/v2/bot/audienceGroup/upload
ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加します。
このエンドポイントでは、送信対象アカウントをJSONで指定します。送信対象アカウントをテキストファイルで指定するエンドポイントも利用できます。
# オーディエンスに追加できるユーザーの条件
ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202
が返され、オーディエンスに追加されます。
- LINEアカウントを削除したユーザー
- オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
- オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー
なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。
ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId
)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。
リクエストタイムアウトを30秒以上に設定することを強く推奨します。
JSONのaudiences
プロパティで無効なユーザーIDが指定されていた場合、エラーレスポンス(details[].message
: UPLOAD_AUDIENCE_GROUP_INVALID_AUDIENCE_ID_FORMAT
)が返り、ユーザーIDの追加に失敗します。このエンドポイントを実行する前に、audiences
プロパティに含まれるすべてのユーザーIDが有効であることを確認してください。
ユーザーIDが有効か確認するには、プロフィール情報を取得するエンドポイントを使用してください。ユーザーIDが有効な場合は、HTTPステータスコード200
が返ります。200
以外が返ってきた場合、そのユーザーIDは無効のため、audiences
プロパティには含めないようにしてください。
ユーザーIDアップロード用のオーディエンスを作成したときと同じ種類(ユーザーIDまたはIFA)のデータを追加してください。たとえば、初めにIFAを指定して作成したオーディエンスに、ユーザーIDを指定することはできません。
オーディエンスを作成したときに指定した送信対象アカウントの種類(ユーザーIDまたはIFA)は、オーディエンスのisIfaAudience
プロパティで確認できます。詳しくは、「オーディエンスの情報を取得する」を参照してください。
一度追加したユーザーIDまたはIFAを削除することはできません。
ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。
そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
audienceGroupId
Number
オーディエンスID
uploadDescription
String
ジョブ(jobs[].description
)に登録する説明
最大文字数:300
audiences
Array
ユーザーIDまたはIFAの配列
最大件数:10,000
audiences[].id
String
ユーザーIDまたはIFA
# レスポンス
HTTPステータスコード202
と空のJSONオブジェクトを返します。
オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
429 | 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ユーザーIDアップロード用のオーディエンスにユーザーIDまたはIFAを追加する(ファイル指定)
PUT
https://api-data.line.me/v2/bot/audienceGroup/upload/byFile
このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me
)です。他のエンドポイントのドメイン名(api.line.me
)とは異なるため、利用時は注意してください。
ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加します。
このエンドポイントでは、送信対象アカウントをテキストファイルで指定します。送信対象アカウントをJSONで指定するエンドポイントも利用できます。
# オーディエンスに追加できるユーザーの条件
ユーザーIDアップロード用のオーディエンスには、LINE公式アカウントと友だちになっているユーザーを追加できます。ただし、以下のユーザーをオーディエンスに追加した場合も、ステータスコード202
が返され、オーディエンスに追加されます。
- LINEアカウントを削除したユーザー
- オーディエンスを作成したLINE公式アカウントをブロックしているユーザー
- オーディエンスを作成したLINE公式アカウントを友だち追加していないユーザー
なお、作成したオーディエンスを使ってメッセージを送信した場合、上記のユーザーにはメッセージは送信されません。
ユーザーIDアップロード用のオーディエンス作成およびオーディエンスへのユーザーID追加のエンドポイントでは、オーディエンスID(audienceGroupId
)単位での同時処理数の制限があります。詳しくは、「同時処理数の制限」を参照してください。
リクエストタイムアウトを30秒以上に設定することを強く推奨します。
ユーザーIDアップロード用のオーディエンスを作成したときと同じ種類(ユーザーIDまたはIFA)のデータを追加してください。たとえば、初めにIFAを指定して作成したオーディエンスに、ユーザーIDを指定することはできません。
オーディエンスを作成したときに指定した送信対象アカウントの種類(ユーザーIDまたはIFA)は、オーディエンスのisIfaAudience
プロパティで確認できます。詳しくは、「オーディエンスの情報を取得する」を参照してください。
一度追加したユーザーIDまたはIFAを削除することはできません。
ユーザーIDアップロード用のオーディエンスにユーザーIDを追加する際に、プライバシーポリシー(2022年3月改定) (opens new window)に同意していないユーザーのユーザーIDが含まれている場合、未同意のユーザーは無視され同意済みのユーザーのみが追加されます。
そのため、指定したユーザーIDの数よりもオーディエンスの有効な送信対象アカウントの数が少なくなることがあります。
リクエストの例
テキストファイルの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
multipart/form-data
# リクエストボディ
audienceGroupId
Number
オーディエンスID
uploadDescription
String
ジョブ(jobs[].description
)に登録する説明
最大文字数:300
file
File
ユーザーIDまたはIFAを、1行に1件入力したテキストファイル。Content-Typeは、text/plain
を指定してください。
最大ファイル数:1
最大行数:1,500,000
# レスポンス
HTTPステータスコード202
と空のJSONオブジェクトを返します。
オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
415 | file プロパティに、サポートされていないメディア形式のファイルが指定されている。 |
429 | 同時処理数の上限を超えています。詳しくは、「同時処理数の制限」を参照してください。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# メッセージクリックオーディエンスを作成する
POST
https://api.line.me/v2/bot/audienceGroup/click
メッセージクリックオーディエンスを作成します。
メッセージクリックオーディエンスは、ブロードキャストメッセージまたはナローキャストメッセージに記載されたURLをクリックしたユーザーを集めたオーディエンスです。少なくとも1つのリンクをクリックしたユーザーが送信対象になります。
対象のメッセージは、リクエストIDで指定します。
オーディエンスの仕様は以下のとおりです。
項目 | 条件 |
---|---|
チャネルあたりのオーディエンス数 | 最大1,000件 |
オーディエンスの保存期間 | 最大180日間(15,552,000秒間) |
オーディエンスあたりのユーザー数 | メッセージクリックオーディエンス:最小50件 |
メッセージを配信してからリターゲティング用オーディエンス(※)を作成できる期間 | 最大60日間(5,184,000秒間) |
※メッセージクリックオーディエンスおよびメッセージインプレッションオーディエンスを指します。
ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
description
String
オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCE
とaudience
は同じ名前と判定されます。
最大文字数:120
requestId
String
配信から60日以内のブロードキャストメッセージまたはナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。
応答メッセージ、プッシュメッセージ、およびマルチキャストメッセージのリクエストIDは、利用できません。
clickUrl
String
ユーザーがクリックしたURL。省略した場合は、メッセージ内の任意のURLをクリックしたユーザーが送信対象になります。
最大文字数:2,000
# レスポンス
ステータスコード202
と以下の情報を含むJSONオブジェクトを返します。
オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。
audienceGroupId
Number
オーディエンスID
createRoute
String
オーディエンスの作成方法。
MESSAGING_API
:Messaging APIで作成したオーディエンス
type
String
オーディエンスのタイプ。
CLICK
:メッセージクリックオーディエンス
description
String
オーディエンスの名前
created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
permission
String
作成したオーディエンスに対する更新権限。
READ_WRITE
:オーディエンスを利用、更新できます。
expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。
isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
requestId
String
オーディエンスを作成したときに指定したリクエストID
clickUrl
String
オーディエンスを作成したときに指定したURL。リクエスト時にclickUrl
プロパティに値を指定した場合にのみ含まれます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# メッセージインプレッションオーディエンスを作成する
POST
https://api.line.me/v2/bot/audienceGroup/imp
メッセージインプレッションオーディエンスを作成します。
メッセージインプレッションオーディエンスは、ブロードキャストメッセージまたはナローキャストメッセージを表示したユーザーを集めたオーディエンスです。少なくとも1つの吹き出しを表示したユーザーが送信対象になります。
対象のメッセージは、リクエストIDで指定します。
オーディエンスの仕様は以下のとおりです。
項目 | 条件 |
---|---|
チャネルあたりのオーディエンス数 | 最大1,000件 |
オーディエンスの保存期間 | 最大180日間(15,552,000秒) |
オーディエンスあたりのユーザー数 | メッセージインプレッションオーディエンス:最小50件 |
メッセージを配信してからリターゲティング用オーディエンス(※)を作成できる期間 | 最大60日間(5,184,000秒間) |
※メッセージクリックオーディエンスおよびメッセージインプレッションオーディエンスを指します。
ナローキャストメッセージの使用制限については、「属性情報やオーディエンスを利用したメッセージ送信の制限事項」を参照してください。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
description
String
オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCE
とaudience
は同じ名前と判定されます。
最大文字数:120
requestId
String
配信から60日以内のブロードキャストメッセージまたはナローキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。
# レスポンス
ステータスコード202
と以下の情報を含むJSONオブジェクトを返します。
オーディエンスを利用する前に、オーディエンスが配信に利用できることを確認してください。
audienceGroupId
Number
オーディエンスID
createRoute
String
オーディエンスの作成方法。
MESSAGING_API
:Messaging APIで作成したオーディエンス
type
String
オーディエンスのタイプ。
IMP
:メッセージインプレッションオーディエンス
description
String
オーディエンスの名前
created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
permission
String
作成したオーディエンスに対する更新権限。
READ_WRITE
:オーディエンスを利用、更新できます。
expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。
isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
requestId
String
オーディエンスを作成したときに指定したリクエストID
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# オーディエンスの名前を更新する
PUT
https://api.line.me/v2/bot/audienceGroup/{audienceGroupId}/updateDescription
既存のオーディエンスの名前を変更します。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# パスパラメータ
audienceGroupId
オーディエンスID
# リクエストボディ
description
String
オーディエンスの名前。なお、大文字と小文字は区別されないため、AUDIENCE
とaudience
は同じ名前と判定されます。
最大文字数:120
# レスポンス
HTTPステータスコード200
と空のJSONオブジェクトを返します。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# オーディエンスを削除する
DELETE
https://api.line.me/v2/bot/audienceGroup/{audienceGroupId}
オーディエンスを削除します。
削除する前に、オーディエンスが使用されていないことを確認してください。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
audienceGroupId
オーディエンスID
# レスポンス
HTTPステータスコード202
と空のJSONオブジェクトを返します。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 存在しないオーディエンスが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# オーディエンスの情報を取得する
GET
https://api.line.me/v2/bot/audienceGroup/{audienceGroupId}
オーディエンスの情報を取得します。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
audienceGroupId
オーディエンスID
# レスポンス
HTTPステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
audienceGroup
Object
オーディエンスグループオブジェクト
audienceGroup.audienceGroupId
Number
オーディエンスID
audienceGroup.createRoute
String
オーディエンスの作成方法。以下のいずれかの値です。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスMESSAGING_API
:Messaging APIで作成したオーディエンスPOINT_AD
:LINEポイントAD (opens new window)で作成したオーディエンスAD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンス
audienceGroup.type
String
オーディエンスのタイプ。以下のいずれかの値です。
UPLOAD
:ユーザーIDアップロード用のオーディエンスCLICK
:メッセージクリックオーディエンスIMP
:メッセージインプレッションオーディエンスCHAT_TAG
:チャットタグオーディエンスFRIEND_PATH
:追加経路オーディエンスRESERVATION
:予約オーディエンスRICHMENU_IMP
:リッチメニューインプレッションオーディエンスRICHMENU_CLICK
:リッチメニュークリックオーディエンスAPP_EVENT
:アプリイベントオーディエンスVIDEO_VIEW
:動画視聴オーディエンスWEBTRAFFIC
:ウェブトラフィックオーディエンスIMAGE_CLICK
:画像クリックオーディエンス
詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。
audienceGroup.description
String
オーディエンスの名前
audienceGroup.status
String
オーディエンスのステータス。以下のいずれかの値です。
IN_PROGRESS
:準備中。READY
になるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESS
のまま更新されません。READY
:配信に利用可能。FAILED
:作成時にエラーが発生。EXPIRED
:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。INACTIVE
:オーディエンスが無効です。ACTIVATING
:オーディエンスを有効化しています。
audienceGroup.audienceCount
Number
オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。
- ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
- チャットタグオーディエンス
オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroup.audienceCount
の値と、メッセージの送信対象となるユーザーの数は異なります。
audienceGroup.created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
audienceGroup.permission
String
オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE
、更新できない場合はREAD
が返ります。
READ
:オーディエンスを利用できますが、更新はできません。READ_WRITE
:オーディエンスを利用、更新できます。
audienceGroup.isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
audienceGroup.requestId
String
オーディエンスを作成したときに指定したリクエストID。audienceGroup.type
がCLICK
またはIMP
の場合にのみ含まれます。
audienceGroup.clickUrl
String
オーディエンスを作成したときに指定したURL。audienceGroup.type
がCLICK
で、リンク先URLが指定されている場合にのみ含まれます。
audienceGroup.failedType
String
失敗した原因。audienceGroup.status
がFAILED
の場合にのみ含まれます。以下のいずれかの値です。
AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT
:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。INTERNAL_ERROR
:内部サーバーのエラーです。
audienceGroup.activated
Number
オーディエンスが有効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroup.inactivatedTimestamp
Number
オーディエンスが無効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroup.expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。
jobs
Array
ジョブの配列。ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加した最新履歴を管理する配列です。それ以外のオーディエンスの場合は空配列が返ります。
最大件数:50
jobs[].audienceGroupJobId
Number
ジョブID
jobs[].audienceGroupId
Number
オーディエンスID
jobs[].description
String
ジョブの説明。ユーザーIDまたはIFAを追加する際にuploadDescription
プロパティに値を指定しなかった場合はnull
が返されます。
jobs[].type
String
ジョブの種類。以下のいずれかの値です。
DIFF_ADD
:Messaging APIでユーザーIDまたはIFAを追加したことを示します。
jobs[].status
String
このプロパティの利用は非推奨です。ジョブのステータスはjobs[].jobStatus
を参照してください。
jobs[].failedType
String
失敗した原因。jobs[].jobStatus
がFAILED
の場合にのみ含まれます。以下のいずれかの値です。
AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT
:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。INTERNAL_ERROR
:内部サーバーのエラーです。
jobs[].jobStatus
がFAILED
以外の場合はnull
が返されます。
jobs[].audienceCount
Number
追加または削除された送信対象アカウントの数
jobs[].created
Number
ジョブが作成された時刻。UNIX時間(秒)で返されます。
jobs[].jobStatus
String
ジョブのステータス。以下のいずれかの値です。
QUEUED
:待機中WORKING
:実行中FINISHED
:成功FAILED
:失敗
adaccount
Object
広告アカウントオブジェクト。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
adaccount[].name
String
オーディエンスグループを作成した広告アカウント名
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 存在しないオーディエンスが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 複数のオーディエンスの情報を取得する
GET
https://api.line.me/v2/bot/audienceGroup/list
複数のオーディエンスの情報を取得します。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
page
取得するページ番号。1
以上を指定してください。
description
取得するオーディエンスの名前。部分一致で検索できます。なお、大文字と小文字は区別されないため、AUDIENCE
とaudience
は同じ名前と判定されます。省略した場合は、オーディエンスの名前を検索条件として使用しません。
status
取得するオーディエンスのステータス。省略した場合は、オーディエンスのステータスを検索条件として使用しません。以下のいずれかの値です。
IN_PROGRESS
:準備中。READY
:配信に利用可能。FAILED
:作成時にエラーが発生。EXPIRED
:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。INACTIVE
:オーディエンスが無効です。ACTIVATING
:オーディエンスを有効化しています。
size
1ページごとのオーディエンス数。デフォルト値は20
です。
最大値:40
includesExternalPublicGroups
true
:同じボットに関連付けられた、すべてのチャネルで作成された公開オーディエンスを取得(デフォルト)false
:同じチャネルに作成されたオーディエンスのみを取得
createRoute
オーディエンスの作成方法。省略した場合は、すべてのオーディエンスを取得します。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスのみを取得MESSAGING_API
:Messaging APIで作成したオーディエンスのみを取得POINT_AD
:LINEポイントAD (opens new window)で作成したオーディエンスのみを取得AD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンスのみを取得
複数のパラメータを指定した場合、OR条件となります。
# レスポンス
HTTPステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
audienceGroups
Array
オーディエンスの情報の配列。指定した条件に該当するオーディエンスが存在しなかった場合は空配列が返ります。
audienceGroups[].audienceGroupId
Number
オーディエンスID
audienceGroups[].createRoute
String
オーディエンスの作成方法。以下のいずれかの値です。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスMESSAGING_API
:Messaging APIで作成したオーディエンスPOINT_AD
:LINEポイントAD (opens new window)で作成したオーディエンスAD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンス
audienceGroups[].type
String
オーディエンスのタイプ。以下のいずれかの値です。
UPLOAD
:ユーザーIDアップロード用のオーディエンスCLICK
:メッセージクリックオーディエンスIMP
:メッセージインプレッションオーディエンスCHAT_TAG
:チャットタグオーディエンスFRIEND_PATH
:追加経路オーディエンスRESERVATION
:予約オーディエンスRICHMENU_IMP
:リッチメニューインプレッションオーディエンスRICHMENU_CLICK
:リッチメニュークリックオーディエンスAPP_EVENT
:アプリイベントオーディエンスVIDEO_VIEW
:動画視聴オーディエンスWEBTRAFFIC
:ウェブトラフィックオーディエンスIMAGE_CLICK
:画像クリックオーディエンス
詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。
audienceGroups[].description
String
オーディエンスの名前
audienceGroups[].status
String
オーディエンスのステータス。以下のいずれかの値です。
IN_PROGRESS
:準備中。READY
になるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESS
のまま更新されません。READY
:配信に利用可能。FAILED
:作成時にエラーが発生。EXPIRED
:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。INACTIVE
:オーディエンスが無効です。ACTIVATING
:オーディエンスを有効化しています。
audienceGroups[].audienceCount
Number
オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。
- ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
- チャットタグオーディエンス
オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroups[].audienceCount
の値と、メッセージの送信対象となるユーザーの数は異なります。
audienceGroups[].created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
audienceGroups[].permission
String
オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE
、更新できない場合はREAD
が返ります。
READ
:オーディエンスを利用できますが、更新はできません。READ_WRITE
:オーディエンスを利用、更新できます。
audienceGroups[].isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
audienceGroups[].activated
Number
オーディエンスが有効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroups[].inactivatedTimestamp
Number
オーディエンスが無効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroups[].expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。
audienceGroups[].requestId
String
オーディエンスを作成したときに指定したリクエストID。audienceGroups[].type
がCLICK
またはIMP
の場合にのみ含まれます。
audienceGroups[].clickUrl
String
オーディエンスを作成したときに指定したURL。audienceGroups[].type
がCLICK
で、リンク先URLが指定されている場合にのみ含まれます。
audienceGroups[].failedType
String
失敗した原因。audienceGroups[].status
がFAILED
またはEXPIRED
の場合にのみ含まれます。以下のいずれかの値です。
AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT
:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。INTERNAL_ERROR
:内部サーバーのエラーです。
hasNextPage
Boolean
次のページが存在する場合は、true
totalCount
Number
指定した条件で取得できるオーディエンスの総数
readWriteAudienceGroupTotalCount
Number
指定した条件で取得できるオーディエンスのうち、更新権限(audienceGroups[].permission
)がREAD_WRITE
になっているオーディエンスの数
page
Number
現在のページ番号
size
Number
現在のページに含まれる最大のオーディエンス数
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | クエリパラメータに無効な値が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ビジネスマネージャーで共有されたオーディエンスの情報を取得する
GET
https://api.line.me/v2/bot/audienceGroup/shared/{audienceGroupId}
ビジネスマネージャー (opens new window)で共有されたオーディエンスの情報を取得します。
ビジネスマネージャーを使うことで、特定のオーディエンスを複数のサービス間で共有できます。ビジネスマネージャーでオーディエンスを横断利用することで、エンドユーザーとのより良いコミュニケーションが実現できます。
詳しくは、『LINE DATA SOLUTION』の「ビジネスマネージャー (opens new window)」を参照してください。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
audienceGroupId
情報を取得したいオーディエンスのオーディエンスID。
# レスポンス
HTTPステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
audienceGroup
Object
オーディエンスグループオブジェクト
audienceGroup.audienceGroupId
Number
オーディエンスID
audienceGroup.createRoute
String
オーディエンスの作成方法。以下のいずれかの値です。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスMESSAGING_API
:Messaging APIで作成したオーディエンスPOINT_AD
:LINEポイントAD (opens new window)で作成したオーディエンスAD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンスBUSINESS_MANAGER
:ビジネスマネージャー (opens new window)で作成したオーディエンスYAHOO_DISPLAY_ADS
:Yahoo!広告 ディスプレイ広告 (opens new window)で作成したオーディエンス
audienceGroup.type
String
オーディエンスのタイプ。以下のいずれかの値です。
UPLOAD
:ユーザーIDアップロード用のオーディエンスCLICK
:メッセージクリックオーディエンスIMP
:メッセージインプレッションオーディエンスCHAT_TAG
:チャットタグオーディエンスFRIEND_PATH
:追加経路オーディエンスRESERVATION
:予約オーディエンスRICHMENU_IMP
:リッチメニューインプレッションオーディエンスRICHMENU_CLICK
:リッチメニュークリックオーディエンスAPP_EVENT
:アプリイベントオーディエンスVIDEO_VIEW
:動画視聴オーディエンスWEBTRAFFIC
:ウェブトラフィックオーディエンスIMAGE_CLICK
:画像クリックオーディエンス
詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。
audienceGroup.description
String
オーディエンスの名前
audienceGroup.status
String
オーディエンスのステータス。以下のいずれかの値です。
IN_PROGRESS
:準備中。READY
になるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESS
のまま更新されません。READY
:配信に利用可能。FAILED
:作成時にエラーが発生。EXPIRED
:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。INACTIVE
:オーディエンスが無効です。ACTIVATING
:オーディエンスを有効化しています。
audienceGroup.audienceCount
Number
オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。
- ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
- チャットタグオーディエンス
オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroup.audienceCount
の値と、メッセージの送信対象となるユーザーの数は異なります。
audienceGroup.created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
audienceGroup.permission
String
オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE
、更新できない場合はREAD
が返ります。
READ
:オーディエンスを利用できますが、更新はできません。READ_WRITE
:オーディエンスを利用、更新できます。
audienceGroup.isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
audienceGroups[].webtraffic
Object
ウェブトラフィックオブジェクト。audienceGroups[].type
がWEBTRAFFIC
の場合にのみ含まれます。
audienceGroup.requestId
String
オーディエンスを作成したときに指定したリクエストID。audienceGroup.type
がCLICK
またはIMP
の場合にのみ含まれます。
audienceGroup.clickUrl
String
オーディエンスを作成したときに指定したURL。audienceGroup.type
がCLICK
で、リンク先URLが指定されている場合にのみ含まれます。
audienceGroup.failedType
String
失敗した原因。audienceGroup.status
がFAILED
の場合にのみ含まれます。以下のいずれかの値です。
AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT
:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。INTERNAL_ERROR
:内部サーバーのエラーです。
audienceGroup.activated
Number
オーディエンスが有効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroup.inactivatedTimestamp
Number
オーディエンスが無効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroup.expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。
jobs
Array
ジョブの配列。ユーザーIDアップロード用のオーディエンスに、ユーザーIDまたはIFAを追加した最新履歴を管理する配列です。それ以外のオーディエンスの場合は空配列が返ります。
最大件数:50
jobs[].audienceGroupJobId
Number
ジョブID
jobs[].audienceGroupId
Number
オーディエンスID
jobs[].description
String
ジョブの説明。ユーザーIDまたはIFAを追加する際にuploadDescription
プロパティに値を指定しなかった場合はnull
が返されます。
jobs[].type
String
ジョブの種類。以下のいずれかの値です。
DIFF_ADD
:Messaging APIでユーザーIDまたはIFAを追加したことを示します。
jobs[].status
String
このプロパティの利用は非推奨です。ジョブのステータスはjobs[].jobStatus
を参照してください。
jobs[].failedType
String
失敗した原因。jobs[].jobStatus
がFAILED
の場合にのみ含まれます。以下のいずれかの値です。
AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT
:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。INTERNAL_ERROR
:内部サーバーのエラーです。
jobs[].jobStatus
がFAILED
以外の場合はnull
が返されます。
jobs[].audienceCount
Number
追加または削除された送信対象アカウントの数
jobs[].created
Number
ジョブが作成された時刻。UNIX時間(秒)で返されます。
jobs[].jobStatus
String
ジョブのステータス。以下のいずれかの値です。
QUEUED
:待機中WORKING
:実行中FINISHED
:成功FAILED
:失敗
owner.serviceType
String
オーディエンスを作成したサービス名称。以下のいずれかの値を返します。
bm
:ビジネスマネージャーlap
:LINE広告account
:LINE公式アカウントyda
:Yahoo!広告
owner.id
String
オーディエンスを作成したアカウントのID。
owner.name
String
オーディエンスを作成したアカウントの名前。
レスポンスの例
# ウェブトラフィックオブジェクト
ウェブトラフィックオーディエンスについての情報を表すオブジェクトです。
webtrafficIsMyTag
Boolean
LINE TagがMessaging APIチャネルと紐づいているLINE公式アカウントで作成されている場合はtrue
を返します。
webtrafficBmTagSharingStatus
String
LINE Tagがビジネスマネージャー上で共有されているかどうかを表す値。
SHARED
:ビジネスマネージャー上で共有されているUNSHARED
:ビジネスマネージャー上で共有されていない
webtrafficIsTagDeleted
Boolean
このウェブトラフィックオーディエンスで使用されているLINE Tagが既に削除されている場合はtrue
を返します。
webtrafficTagCreateRoute
String
ウェブトラフィックオーディエンスの作成方法。以下のいずれかの値です。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスAD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンスBUSINESS_MANAGER
:ビジネスマネージャー (opens new window)で作成したオーディエンス
webtrafficVisitType
String
LINE Tagのマッチング方法。以下のいずれかの値です。
VISIT_ALL
:すべての訪問ユーザーURL_MATCHING
:URL条件EVENT_MATCHING
:イベント指定
webtrafficRetentionDays
String
ウェブトラフィックオーディエンスの保有期間
webtrafficTagEventType
String
イベントコードの種類。webtrafficVisitType
がEVENT_MATCHING
の場合にのみ含まれます。以下のいずれかの値です。
CONVERSION_EVENT
:コンバージョンコードCUSTOM_EVENT
:カスタムイベントコード
webtrafficCustomEventName
String
カスタムイベント名。webtrafficVisitType
がEVENT_MATCHING
かつwebtrafficTagEventType
がCUSTOM_EVENT
の場合にのみ含まれます。
webtrafficMatchingType
String
LINE Tagのイベント判定方法。webtrafficVisitType
がEVENT_MATCHING
またはURL_MATCHING
の場合にのみ含まれます。値は常にNORMAL
です。
webtrafficConditionGroup
Array
マッチング条件を表す配列。
webtrafficConditionGroup[].conditionType
String
keywords
配列に含まれるキーワードとのマッチング条件。以下のいずれかの値です。
CONTAIN
:キーワードを含むNOT_CONTAIN
:キーワードを含まないEQUAL_TO
:キーワードと一致する
webtrafficConditionGroup[].keywords[]
Array of strings
マッチング条件に使用されるキーワードの配列。
webtrafficTagId
String
LINE TagのタグID。
webtrafficTagOwnerName
String
LINE Tagを発行したアカウントの名前。
例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 存在しないオーディエンスが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ビジネスマネージャーで共有されたオーディエンスのリストを取得する
GET
https://api.line.me/v2/bot/audienceGroup/shared/list
ビジネスマネージャー (opens new window)で共有されたオーディエンスのリストを取得します。
「ビジネスマネージャーで共有されたオーディエンスの情報を取得する」エンドポイントを使うことで、それぞれのオーディエンスについて、より詳細な情報を取得できます。
ビジネスマネージャーを使うことで、特定のオーディエンスを複数のサービス間で共有できます。ビジネスマネージャーでオーディエンスを横断利用することで、エンドユーザーとのより良いコミュニケーションが実現できます。
詳しくは、『LINE DATA SOLUTION』の「ビジネスマネージャー (opens new window)」を参照してください。
リクエストの例
# レート制限
60リクエスト/分
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
page
取得するページ番号。1
以上を指定してください。省略した場合は、1ページ目を取得します。
オーディエンスをすべて取得する場合、レスポンスのaudienceGroups
配列が、1ページごとのオーディエンス数(size
)未満の件数になるまで、page
をインクリメントしてリクエストを繰り返します。
description
取得するオーディエンスの名前。部分一致で検索できます。なお、大文字と小文字は区別されないため、AUDIENCE
とaudience
は同じ名前と判定されます。省略した場合は、オーディエンスの名前を検索条件として使用しません。
status
取得するオーディエンスのステータス。以下のいずれかの値で指定します。省略した場合は、オーディエンスのステータスを検索条件として使用しません。
IN_PROGRESS
:準備中。READY
:配信に利用可能。FAILED
:作成時にエラーが発生。EXPIRED
:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。
size
1ページごとのオーディエンス数。デフォルト値は20
です。
最大値:40
createRoute
オーディエンスの作成方法。省略した場合は、すべてのオーディエンスを取得します。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスのみを取得MESSAGING_API
:Messaging APIで作成したオーディエンスのみを取得POINT_AD
:LINEポイントAD (opens new window)で作成したオーディエンスのみを取得AD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンスのみを取得BUSINESS_MANAGER
:ビジネスマネージャー (opens new window)で作成したオーディエンスのみを取得YAHOO_DISPLAY_ADS
:Yahoo!広告 ディスプレイ広告 (opens new window)で作成したオーディエンスのみを取得
複数のパラメータを指定した場合、OR条件となります。
includesOwnedAudienceGroups
ビジネスマネージャーで共有されたオーディエンスに加えて、LINE公式アカウントで作成したオーディエンスを含めるかどうかの設定。デフォルト値はfalse
です。
true
:LINE公式アカウントで作成したオーディエンスを含めて取得false
:ビジネスマネージャーで共有されたオーディエンスのみを取得
# レスポンス
HTTPステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
audienceGroups
Array
オーディエンスの情報の配列。指定した条件に該当するオーディエンスが存在しなかった場合は空配列が返ります。
audienceGroups[].audienceGroupId
Number
オーディエンスID
audienceGroups[].createRoute
String
オーディエンスの作成方法。以下のいずれかの値です。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスMESSAGING_API
:Messaging APIで作成したオーディエンスPOINT_AD
:LINEポイントAD (opens new window)で作成したオーディエンスAD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンスBUSINESS_MANAGER
:ビジネスマネージャー (opens new window)で作成したオーディエンスYAHOO_DISPLAY_ADS
:Yahoo!広告 ディスプレイ広告 (opens new window)で作成したオーディエンス
audienceGroups[].type
String
オーディエンスのタイプ。以下のいずれかの値です。
UPLOAD
:ユーザーIDアップロード用のオーディエンスCLICK
:メッセージクリックオーディエンスIMP
:メッセージインプレッションオーディエンスCHAT_TAG
:チャットタグオーディエンスFRIEND_PATH
:追加経路オーディエンスRESERVATION
:予約オーディエンスRICHMENU_IMP
:リッチメニューインプレッションオーディエンスRICHMENU_CLICK
:リッチメニュークリックオーディエンスAPP_EVENT
:アプリイベントオーディエンスVIDEO_VIEW
:動画視聴オーディエンスWEBTRAFFIC
:ウェブトラフィックオーディエンスIMAGE_CLICK
:画像クリックオーディエンス
詳しくは、『LINEヤフー for Business』の「オーディエンス (opens new window)」を参照してください。
audienceGroups[].description
String
オーディエンスの名前
audienceGroups[].status
String
オーディエンスのステータス。以下のいずれかの値です。
IN_PROGRESS
:準備中。READY
になるまで数時間かかる場合があります。ユーザー数の規定があるオーディエンスにおいて、オーディエンスに含まれるユーザーの数(最低50件)が不足している場合、ステータスはIN_PROGRESS
のまま更新されません。READY
:配信に利用可能。FAILED
:作成時にエラーが発生。EXPIRED
:有効期限切れ。有効期限切れ後、1か月後に自動で削除されます。INACTIVE
:オーディエンスが無効です。ACTIVATING
:オーディエンスを有効化しています。
audienceGroups[].audienceCount
Number
オーディエンスに含まれるユーザーの数。ユーザーのプライバシーを保護するため、有効な送信対象アカウントの数が20未満の場合は0が返ります。ただし、オーディエンスのタイプが以下の場合を除きます。
- ユーザーIDアップロード用のオーディエンス(送信対象アカウントをユーザーIDで指定する場合)
- チャットタグオーディエンス
オーディエンスには、既にLINE公式アカウントをブロックしたユーザーも含まれる可能性があるため、audienceGroups[].audienceCount
の値と、メッセージの送信対象となるユーザーの数は異なります。
audienceGroups[].created
Number
オーディエンスが作成された時刻。UNIX時間(秒)で返されます。
audienceGroups[].permission
String
オーディエンスに対する更新権限。現在のMessaging APIチャネルが、対象のオーディエンスを更新できる場合はREAD_WRITE
、更新できない場合はREAD
が返ります。
READ
:オーディエンスを利用できますが、更新はできません。READ_WRITE
:オーディエンスを利用、更新できます。
audienceGroups[].isIfaAudience
Boolean
ユーザーIDアップロード用のオーディエンスを作成したときに指定した、送信対象アカウントの種類を示す値。以下のいずれかの値です。
true
:IFAで指定するfalse
:ユーザーIDで指定する(デフォルト)
audienceGroups[].activated
Number
オーディエンスが有効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroups[].inactivatedTimestamp
Number
オーディエンスが無効化した時間。LINE広告 (opens new window)やLINEポイントAD (opens new window)で作成したオーディエンスの場合のみ含まれます。
audienceGroups[].expireTimestamp
Number
オーディエンスの有効期限。UNIX時間(秒)で返されます。特定のオーディエンスの場合のみ含まれます。
audienceGroups[].webtraffic
Object
ウェブトラフィックオブジェクト。audienceGroups[].type
がWEBTRAFFIC
の場合にのみ含まれます。
audienceGroups[].requestId
String
オーディエンスを作成したときに指定したリクエストID。audienceGroups[].type
がCLICK
またはIMP
の場合にのみ含まれます。
audienceGroups[].clickUrl
String
オーディエンスを作成したときに指定したURL。audienceGroups[].type
がCLICK
で、リンク先URLが指定されている場合にのみ含まれます。
audienceGroups[].failedType
String
失敗した原因。audienceGroups[].status
がFAILED
またはEXPIRED
の場合にのみ含まれます。以下のいずれかの値です。
AUDIENCE_GROUP_AUDIENCE_INSUFFICIENT
:オーディエンスに含まれるユーザーの数(最低50件)が不足しています。INTERNAL_ERROR
:内部サーバーのエラーです。
hasNextPage
Boolean
次のページが存在する場合は、true
totalCount
Number
指定した条件で取得できるオーディエンスの総数
readWriteAudienceGroupTotalCount
Number
指定した条件で取得できるオーディエンスのうち、更新権限(audienceGroups[].permission
)がREAD_WRITE
になっているオーディエンスの数
page
Number
現在のページ番号
size
Number
現在のページに含まれる最大のオーディエンス数
レスポンスの例
# ウェブトラフィックオブジェクト
ウェブトラフィックオーディエンスについての情報を表すオブジェクトです。
webtrafficIsMyTag
Boolean
LINE TagがMessaging APIチャネルと紐づいているLINE公式アカウントで作成されている場合はtrue
を返します。
webtrafficBmTagSharingStatus
String
LINE Tagがビジネスマネージャー上で共有されているかどうかを表す値。
SHARED
:ビジネスマネージャー上で共有されているUNSHARED
:ビジネスマネージャー上で共有されていない
webtrafficIsTagDeleted
Boolean
このウェブトラフィックオーディエンスで使用されているLINE Tagが既に削除されている場合はtrue
を返します。
webtrafficTagCreateRoute
String
ウェブトラフィックオーディエンスの作成方法。以下のいずれかの値です。
OA_MANAGER
:LINE Official Account Manager (opens new window)で作成したオーディエンスAD_MANAGER
:LINE広告 (opens new window)で作成したオーディエンスBUSINESS_MANAGER
:ビジネスマネージャー (opens new window)で作成したオーディエンス
例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | クエリパラメータに無効な値が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 分析
LINE公式アカウントから送信したメッセージの数や友だち数、統計情報などを取得できます。
GET
/v2/bot/insight/message/delivery?date={date}
GET
/v2/bot/insight/followers?date={date}
GET
/v2/bot/insight/demographic
GET
/v2/bot/insight/message/event?requestId={requestId}
GET
/v2/bot/insight/message/event/aggregation?customAggregationUnit={customAggregationUnit}&from={from}&to={to}
GET
/v2/bot/message/aggregation/info
GET
/v2/bot/message/aggregation/list
# メッセージの送信数を取得する
GET
https://api.line.me/v2/bot/insight/message/delivery?date={date}
date
に指定した日に、LINE公式アカウントから送信したメッセージの数を確認できます。
リクエストの例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
date
メッセージの送信数を確認する日付
- フォーマット:
yyyyMMdd
(例:20191231
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
集計処理の状態。以下のいずれかの値です。
ready
:メッセージ数を取得できます。unready
:date
に指定した日付のメッセージ数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。out_of_service
:date
に指定した日付が、集計システムの稼働開始日(2017年3月1日)より前です。
broadcast
以降のプロパティは、status
プロパティの値がready
の場合にのみレスポンスに含まれます。
broadcast
Number
LINE Official Account Managerで配信先を[すべての友だち]にして送信したメッセージの数。
targeting
Number
LINE Official Account Managerで配信先を[絞り込み]にして送信したメッセージの数。
stepMessage
Number
LINE Official Account Managerでステップ配信を使って送信されたメッセージの数。
詳しくは、『LINEヤフー for Business』の「ステップ配信 (opens new window)」を参照してください。
autoResponse
Number
ユーザーからメッセージを受信した際に、自動的に送信された応答メッセージの数。
詳しくは、『LINEヤフー for Business』の「応答メッセージ (opens new window)」を参照してください。
welcomeResponse
Number
ユーザーがLINE公式アカウントを友だち追加した際に、自動的に送信されたあいさつメッセージの数。
詳しくは、『LINEヤフー for Business』の「あいさつメッセージを設定する (opens new window)」を参照してください。
chat
Number
LINE Official Account Managerの「チャット基本画面 (opens new window)」から送信されたメッセージの数。
apiBroadcast
Number
「ブロードキャストメッセージを送る」エンドポイントを使って送信されたメッセージの数。
apiPush
Number
「プッシュメッセージを送る」エンドポイントを使って送信されたメッセージの数。
apiMulticast
Number
「マルチキャストメッセージを送る」エンドポイントを使って送信されたメッセージの数。
apiNarrowcast
Number
「ナローキャストメッセージを送る」エンドポイントを使って送信されたメッセージの数。
apiReply
Number
「応答メッセージを送る」エンドポイントを使って送信されたメッセージの数。
ccAutoReply
Number
LINEチャットPlusの自動応答で送信されたメッセージの数。
ccManualReply
Number
LINEチャットPlusの有人でのチャット対応で送信されたメッセージの数。
pnpNoticeMessage
Number
法人ユーザー向けオプションの「LINE通知メッセージ」を使って送信されたメッセージの数。
pnpCallToLine
Number
Call to LINE(※)で送信されたメッセージの数。
※ Call to LINEの新規利用受付は終了しています。
thirdPartyChatTool
Number
外部チャットツールから送信されたメッセージの数。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効な日付が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 友だち数を取得する
GET
https://api.line.me/v2/bot/insight/followers?date={date}
LINE公式アカウントの友だち数を確認できます。
リクエストの例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
date
友だち数を確認する日付
- フォーマット:
yyyyMMdd
(例:20191231
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
status
String
集計処理の状態。以下のいずれかの値です。
ready
:数値を取得できます。unready
:date
に指定した日付の友だち数の集計がまだ完了していません。しばらくしてからリクエストを再実行してください。通常、集計処理は翌日中に完了します。out_of_service
:date
に指定した日付が、集計システムの稼働開始日(2016年11月1日)より前です。
followers
Number
date
に指定した日付までに、アカウントが友だち追加された回数。アカウントがブロックされたり、あなたを友だち追加したユーザーがLINEアカウントを削除したりしても、この値は減少しません。
status
の値がready
以外の場合、null
になります。
targetedReaches
Number
date
に指定した日付時点の、性別や年齢、地域で絞り込んだターゲティングメッセージの配信先となりうる友だちの総数。LINEおよびその他のLINEサービスの利用頻度が高く、属性の高精度な推定が可能な友だちが含まれます。
status
の値がready
以外の場合、null
になります。
blocks
Number
date
に指定した日付時点で、アカウントをブロックしているユーザーの数。ブロックが解除されると、この値は減少します。
status
の値がready
以外の場合、null
になります。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 日付が指定されていない、もしくは無効な日付が指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 友だちの属性情報に基づく統計情報を取得する
GET
https://api.line.me/v2/bot/insight/demographic
LINE公式アカウントの友だちの属性情報に基づく統計情報を取得します。友だちの属性情報に基づく統計情報を取得するには、以下の条件をすべて満たす必要があります。
- ターゲットリーチが20人以上である。
- 日本(JP)、タイ(TH)、台湾(TW)のユーザーが作成したLINE公式アカウントである。
友だちの属性情報に基づく統計情報が反映されるまで約3日かかります。そのため、取得できる情報は約3日前の数値です。なお、反映されるタイミングは前後する可能性があります。
友だちの属性情報は、LINEファミリーサービスにおいて、LINEユーザーが登録した性別、年代、エリア情報と行動履歴をもとに分類した「みなし属性」となります。携帯キャリアおよびOSは、みなし属性に含まれません。
みなし属性は、ユーザーがLINE上で購入、使用したスタンプや興味のあるコンテンツのほか、どのようなLINE公式アカウントと友だちになっているかといった傾向をもとに分類したものです。分類の元となる情報に電話番号、メールアドレス、アドレス帳、トーク内容などの機微情報は含みません。
属性情報の推定は統計的に実施され、特定の個人の識別は行っていません。また、特定の個人を識別可能な情報の第三者(広告主など)への提供は実施していません。
リクエストの例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
available
Boolean
true
:友だちの属性情報に基づく統計情報が利用できる。false
:次のような理由で、友だちの属性情報に基づく統計情報が利用できない。- ターゲットリーチが20人未満である。
- 日本(JP)、タイ(TH)、台湾(TW)以外のユーザーが作成したLINE公式アカウントである。
レスポンス内の各配列(genders
、ages
、areas
、appTypes
、subscriptionPeriods
)の要素は、available
の値がtrue
の場合にのみレスポンスに含まれます。
genders
Array
性別ごとの割合。統計情報が利用できない場合、空の配列を返します。
genders[].gender
String
ユーザーの性別に基づいて、以下の値が返されます。
male
female
unknown
genders[].percentage
Number
割合
ages
Array
年齢ごとの割合。統計情報が利用できない場合、空の配列を返します。
ages[].age
String
ユーザーの年齢に基づいて、以下の値が返されます。
タイのLINE公式アカウントの統計情報を取得する場合、レスポンス内のages[].age
の値として、from0to14
とfrom15to19
の割合は返されません。年齢が20歳未満のユーザーは、unknown
として集計されます。
from0to14
from15to19
from20to24
from25to29
from30to34
from35to39
from40to44
from45to49
from50
- 2024年9月5日より、50歳から70歳までの割合を取得できるようになりました。
from50to54
from55to59
from60to64
from65to69
from70
unknown
ages[].percentage
Number
割合
areas
Array
地域ごとの割合。統計情報が利用できない場合、空の配列を返します。
areas[].area
String
ユーザーの国や地域に基づいて、以下の値が返されます。
JP
北海道
青森
岩手
宮城
秋田
山形
福島
茨城
栃木
群馬
埼玉
千葉
東京
神奈川
新潟
富山
石川
福井
山梨
長野
岐阜
静岡
愛知
三重
滋賀
京都
大阪
兵庫
奈良
和歌山
鳥取
島根
岡山
広島
山口
徳島
香川
愛媛
高知
福岡
佐賀
長崎
熊本
大分
宮崎
鹿児島
沖縄
unknown
TW
台北市
新北市
桃園市
台中市
台南市
高雄市
基隆市
新竹市
嘉義市
新竹縣
苗栗縣
彰化縣
南投縣
雲林縣
嘉義縣
屏東縣
宜蘭縣
花蓮縣
台東縣
澎湖縣
金門縣
連江縣
unknown
TH
Bangkok
Pattaya
Northern
Central
Southern
Eastern
NorthEastern
Western
unknown
areas[].percentage
Number
割合
appTypes
Array
OSごとの割合。統計情報が利用できない場合、空の配列を返します。
appTypes[].appType
String
ユーザーが使用するOSに基づいて、以下の値が返されます。
ios
android
others
appTypes[].percentage
Number
割合
subscriptionPeriods
Array
友だち期間ごとの割合。統計情報が利用できない場合、空の配列を返します。
subscriptionPeriods[].subscriptionPeriod
String
ユーザーとの友だち期間に基づいて、以下の値が返されます。友だち期間とは、ユーザーがLINE公式アカウントを友だち追加してからの期間のことです。ユーザーがLINE公式アカウントを友だち追加した翌日を1日目として起算します。
within7days
:7日未満within30days
:7日以上30日未満within90days
:30日以上90日未満within180days
:90日以上180日未満within365days
:180日以上365日未満over365days
:365日以上unknown
:不明
subscriptionPeriods[].percentage
Number
それぞれのsubscriptionPeriod
に対するユーザーの割合。
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# ユーザーの操作に基づく統計情報を取得する
GET
https://api.line.me/v2/bot/insight/message/event?requestId={requestId}
LINE公式アカウントから送信したナローキャストメッセージまたはブロードキャストメッセージに対して、ユーザーがどのように操作したかを示す統計情報を確認できます。
1メッセージ(message)単位、および1吹き出し(bubble)単位で統計情報を取得できます。
統計情報は、メッセージの送信時刻から14日間(1,209,600秒間)のみ更新されます。それ以降は更新されません。
たとえば2021年2月1日の21:15:00に送信した場合、統計情報は2021年2月15日の21:15:00まで更新されます。
リクエストの例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
requestId
ナローキャストメッセージまたはブロードキャストメッセージのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
統計情報の数値は、多少の誤差を含むことがあります。
またプライバシーを保護するため、次のような場合、個人の操作に関するプロパティの値はnull
になります。
- プロパティの値が20未満だった場合
- プロパティの値が20以上であっても、そのイベントを発生させた実人数が20人未満だった場合(たとえば
messages[].mediaPlayed
は30だが、messages[].uniqueMediaPlayed
が15だった場合は、どちらの値もnull
になります)
overview
Object
メッセージに関する統計情報。
overview.requestId
String
リクエストID。
overview.timestamp
Number
メッセージが配信された時刻。UNIX時間(秒)で返されます。
overview.delivered
Number
メッセージの送信数。この値は、20未満の数値も表示されます。ただし、メッセージの送信がすべて完了していない場合はnullになります。
overview.uniqueImpression
Number
メッセージを開封した人数。少なくとも1つの吹き出しを表示した人数です。
overview.uniqueClick
Number
メッセージ内のいずれかのURLをタップした人数。
overview.uniqueMediaPlayed
Number
メッセージ内のいずれかの動画または音声の再生を開始した人数。
overview.uniqueMediaPlayed100Percent
Number
メッセージ内のいずれかの動画または音声を最後まで視聴した人数。
messages
Array
吹き出しに関する情報を表す配列。統計情報が利用できない場合、空の配列を返します。
messages[].seq
Number
吹き出しの通し番号。
messages[].impression
Number
吹き出しが表示された回数。
messages[].mediaPlayed
Number
吹き出し内の動画または音声が再生開始された回数。動画が自動再生された場合も、回数に含まれます。
messages[].mediaPlayed25Percent
Number
吹き出し内の動画または音声が再生開始され、25%再生された回数。
messages[].mediaPlayed50Percent
Number
吹き出し内の動画または音声が再生開始され、50%再生された回数。
messages[].mediaPlayed75Percent
Number
吹き出し内の動画または音声が再生開始され、75%再生された回数。
messages[].mediaPlayed100Percent
Number
吹き出し内の動画または音声が再生開始され、100%再生された回数。
messages[].uniqueMediaPlayed
Number
吹き出し内の動画または音声を再生開始した人数。
messages[].uniqueMediaPlayed25Percent
Number
吹き出し内の動画または音声を再生開始し、25%再生した人数。
messages[].uniqueMediaPlayed50Percent
Number
吹き出し内の動画または音声を再生開始し、50%再生した人数。
messages[].uniqueMediaPlayed75Percent
Number
吹き出し内の動画または音声を再生開始し、75%再生した人数。
messages[].uniqueMediaPlayed100Percent
Number
吹き出し内の動画または音声を再生開始し、100%再生した人数。
clicks
Array
タップしたURLに関する情報を表す配列。メッセージにURLが含まれていない場合や統計情報が利用できない場合は、空の配列を返します。
clicks[].seq
Number
URLが含まれていた吹き出しの通し番号。
clicks[].url
String
URL。
clicks[].click
Number
吹き出し内のURLをタップした回数。
clicks[].uniqueClick
Number
吹き出し内のURLをタップした人数。
clicks[].uniqueClickOfRequest
Number
メッセージ内のURLのうちurl
と同じURLをタップした人数。ほかの吹き出しに同じURLが設定されている場合に、1人のユーザーが各URLをタップした場合でも、1回だけカウントされます。
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# ユニットごとの統計情報を取得する
GET
https://api.line.me/v2/bot/insight/message/event/aggregation?customAggregationUnit={customAggregationUnit}&from={from}&to={to}
LINE公式アカウントから送信したプッシュメッセージやマルチキャストメッセージに対して、ユーザーがどのように操作したかを示す統計情報をユニットごとに確認できます。
統計情報はユニットごとに、1メッセージ(message)単位、および1吹き出し(bubble)単位で取得できます。
なお、ユニット名が同じメッセージを複数送った場合、メッセージの内容や吹き出し数、吹き出しの順番が異なっていても、統計情報はユニットごとにまとめて集計されます。
統計情報は、メッセージの送信時刻から14日間(1,209,600秒間)のみ更新されます。それ以降は更新されません。
たとえば2021年2月1日の21:15:00に送信した場合、統計情報は2021年2月15日の21:15:00まで更新されます。
ナローキャストメッセージまたはブロードキャストメッセージについて、メッセージごとの統計情報を取得したい場合は、次のエンドポイントを使用してください。
リクエストの例
# レート制限
60リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
customAggregationUnit
String
メッセージ送信時に付与した任意の集計単位のユニット名。大文字と小文字は区別されます。たとえばpromotion_a
とpromotion_A
は別のユニットとして扱われます。
ユニット名の付与について詳しくは、『Messaging APIドキュメント』の「ユニット名を付与する」を参照してください。
from
String
集計対象期間の開始日。
- フォーマット:
yyyyMMdd
(例:20210301
) - タイムゾーン:UTC+9
to
String
集計対象期間の終了日。終了日は、開始日の30日後まで指定できます。たとえば、開始日が20210301
の場合、終了日は20210331
まで指定できます。
- フォーマット:
yyyyMMdd
(例:20210331
) - タイムゾーン:UTC+9
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
統計情報の数値は、多少の誤差を含むことがあります。
またプライバシーを保護するため、次のような場合、個人の操作に関するプロパティの値はnull
になります。
- プロパティの値が20未満だった場合
- プロパティの値が20以上であっても、そのイベントを発生させた実人数が20人未満だった場合(たとえば
messages[].mediaPlayed
は30だが、messages[].uniqueMediaPlayed
が15だった場合は、どちらの値もnull
になります)
overview
Object
メッセージに関する統計情報。
overview.uniqueImpression
Number
メッセージを開封した人数。少なくとも1つの吹き出しを表示した人数です。
overview.uniqueClick
Number
メッセージ内のいずれかのURLをタップした人数。
overview.uniqueMediaPlayed
Number
メッセージ内のいずれかの動画または音声の再生を開始した人数。
overview.uniqueMediaPlayed100Percent
Number
メッセージ内のいずれかの動画または音声を最後まで視聴した人数。
messages
Array
吹き出しに関する情報を表す配列。統計情報が利用できない場合、空の配列を返します。
messages[].seq
Number
吹き出しの通し番号。
messages[].impression
Number
吹き出しが表示された回数。
messages[].uniqueImpression
Number
吹き出しを表示した人数。
messages[].mediaPlayed
Number
吹き出し内の動画または音声が再生開始された回数。動画が自動再生された場合も、回数に含まれます。
messages[].mediaPlayed25Percent
Number
吹き出し内の動画または音声が再生開始され、25%再生された回数。
messages[].mediaPlayed50Percent
Number
吹き出し内の動画または音声が再生開始され、50%再生された回数。
messages[].mediaPlayed75Percent
Number
吹き出し内の動画または音声が再生開始され、75%再生された回数。
messages[].mediaPlayed100Percent
Number
吹き出し内の動画または音声が再生開始され、100%再生された回数。
messages[].uniqueMediaPlayed
Number
吹き出し内の動画または音声を再生開始した人数。
messages[].uniqueMediaPlayed25Percent
Number
吹き出し内の動画または音声を再生開始し、25%再生した人数。
messages[].uniqueMediaPlayed50Percent
Number
吹き出し内の動画または音声を再生開始し、50%再生した人数。
messages[].uniqueMediaPlayed75Percent
Number
吹き出し内の動画または音声を再生開始し、75%再生した人数。
messages[].uniqueMediaPlayed100Percent
Number
吹き出し内の動画または音声を再生開始し、100%再生した人数。
clicks
Array
タップしたURLに関する情報を表す配列。メッセージにURLが含まれていない場合や統計情報が利用できない場合は、空の配列を返します。
clicks[].seq
Number
URLが含まれていた吹き出しの通し番号。
clicks[].url
String
URL。
clicks[].click
Number
吹き出し内のURLをタップした回数。
clicks[].uniqueClick
Number
吹き出し内のURLをタップした人数。
clicks[].uniqueClickOfRequest
Number
メッセージ内のURLのうちurl
と同じURLをタップした人数。ほかの吹き出しに同じURLが設定されている場合に、1人のユーザーが各URLをタップした場合でも、1回だけカウントされます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 統計情報が取得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 当月中に付与したユニット名の種類数を取得する
GET
https://api.line.me/v2/bot/message/aggregation/info
当月中にメッセージに付与したユニット名の種類数を取得します。メッセージ送信時にユニット名を付与する際の制限については、『Messaging APIドキュメント』の「ユニット名の種類数の上限」を参照してください。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
numOfCustomAggregationUnits
Number
当月中にメッセージに付与したユニット名の種類数。
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# 当月中に付与したユニット名のリストを取得する
GET
https://api.line.me/v2/bot/message/aggregation/list
当月中にメッセージに付与したユニット名の、一意なリストを取得します。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
limit
String
1回のリクエストで取得するユニット名の最大数です。デフォルト値は100
です。
最大値:100
start
String
継続トークンの値。レスポンスで返されるJSONオブジェクトのnext
プロパティに含まれます。1回のリクエストでユニット名をすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
customAggregationUnits
Array of strings
ユニット名を表す文字列の配列です。配列には、当月中にメッセージに付与したユニット名が一意に含まれています。
next
String
継続トークン。ユニット名の次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのcustomAggregationUnits
プロパティで取得しきれなかったユニット名がある場合にのみ返されます。
継続トークンの有効期間は24時間(86,400秒間)です。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ユーザー
LINE公式アカウントを友だち追加したユーザーの情報を取得できます。
自分のユーザーIDは、LINE Developersコンソールのチャネルの[チャネル基本設定]タブにある[あなたのユーザーID]で確認できます。LINE Developersコンソールのアクセス権限について詳しくは、『権限を管理する』の「チャネルの権限」を参照してください。開発者が自分自身のユーザーIDを取得するためのAPIはありません。
# プロフィール情報を取得する
GET
https://api.line.me/v2/bot/profile/{userId}
以下のいずれかの条件を満たすユーザーのプロフィール情報を取得できます。
- LINE公式アカウントを友だち追加しているユーザー
- LINE公式アカウントを友だち追加したことはないが、LINE公式アカウントにメッセージを送信したことがあるユーザー(LINE公式アカウントをブロックしているユーザーを除く)
なお取得できる情報はメインプロフィールのみです。ユーザーのサブプロフィールは取得できません。
LINE公式アカウントをブロックしているユーザーのプロフィール情報は取得できません。
グループトークや複数人トークのメンバーのプロフィール情報を取得するには、以下のエンドポイントを利用できます。
リクエストの例
# APIプレイグラウンド
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
userId
Webhookイベントオブジェクトで返されるユーザーID。LINEに表示されるLINE IDは使用しないでください。
# レスポンス
ユーザーIDが有効な場合、ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
displayName
String
ユーザーの表示名
userId
String
ユーザーID
language
String
ユーザーの言語。BCP 47 (opens new window)言語タグに従った文字列が返されます。ユーザーがLINEのプライバシーポリシーに未同意の場合はレスポンスに含まれません。
例:en
(英語)。
pictureUrl
String
プロフィール画像のURL。スキームはhttpsです。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。
statusMessage
String
ユーザーのステータスメッセージ。ユーザーがステータスメッセージを設定していない場合はレスポンスに含まれません。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なユーザーIDが指定されています。 |
404 | プロフィール情報を取得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# LINE公式アカウントを友だち追加したユーザーのリストを取得する
GET
https://api.line.me/v2/bot/followers/ids
この機能は認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。
LINE公式アカウントを友だち追加したユーザーの、ユーザーIDのリストを取得します。
すべてのユーザーIDを取得するには、next
プロパティがレスポンスに含まれなくなるまでリクエストを繰り返す必要があります。レスポンスに含まれるnext
プロパティの値を次のリクエストのstart
に指定し、リクエストを繰り返してください。
# 取得できるユーザーIDの制限について
取得したユーザーIDのリストに、以下のユーザーのユーザーIDは含まれません。
- LINEアカウントを削除したユーザー。
- 対象のLINE公式アカウントを友だち追加した後にブロックしたユーザー。
- プロフィール情報の取得に同意していないユーザー。詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。
そのため、このエンドポイントで取得したユーザーIDの数は、LINE公式アカウントのプロフィールやLINE Official Account Manager (opens new window)に表示される友だち数と一致しない場合があります。
このエンドポイントで取得したユーザーIDに対してメッセージを送信しても、ユーザーの操作が原因でメッセージが送信できない場合があります。主な原因は以下のとおりです。
- ユーザーIDを取得してからメッセージを送信するまでの間に、ユーザーが対象のLINE公式アカウントをブロックした。
- ユーザーが対象のLINE公式アカウントを友だち追加した後に、LINEアカウントを削除 (opens new window)した。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
limit
Number
1回のリクエストで取得するユーザーIDの最大数。デフォルト値は300
です。
最大値:1000
start
String
継続トークンの値。レスポンスで返されるJSONオブジェクトのnext
プロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りのユーザーIDを取得します。
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
userIds
Array of strings
LINE公式アカウントを友だち追加したユーザーのユーザーIDを示す文字列の配列です。取得できるユーザーIDに制限があるため、userIds
プロパティに含まれるユーザーIDの数は、next
プロパティが返される場合でも、必ずlimit
で指定した最大数になるとは限りません。
ユーザーIDの最大数:limit
で指定した数
next
String
継続トークン。次のユーザーIDを取得するために使用します。このプロパティは、前回までのレスポンスのuserIds
プロパティで取得しきれなかったユーザーIDがある場合にのみ返されます。
継続トークンの有効期間は24時間(86,400秒間)です。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効な継続トークンが指定されています。 |
403 | このエンドポイントを使う権限がありません。認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# メンバーシップ
LINE公式アカウントのメンバーシップの情報を取得できます。詳しくは、『Messaging APIドキュメント』の「メンバーシップ機能を使う」を参照してください。
# ユーザーのメンバーシップ加入状況を取得する
GET
https://api.line.me/v2/bot/membership/subscription/{userId}
ユーザーが加入しているメンバーシップの情報を取得できます。
リクエストの例
# レート制限
200リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
userId
メンバーシップ加入状況を確認したいユーザーのユーザーID。
ユーザーIDの取得方法については、『Messaging APIドキュメント』の「ユーザーIDを取得する」を参照してください。
# レスポンス
ユーザーがメンバーシップに加入している場合、ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
subscriptions
Array
メンバーシップの配列。
membership
Object
メンバーシッププランの情報を含むオブジェクト。
membership.membershipId
Number
メンバーシッププランのID。
membership.title
String
メンバーシッププランのプラン名。
membership.description
String
メンバーシッププランの説明。
membership.benefits
Array of strings
メンバーシッププランの特典のリスト。
特典の最大数:5
membership.price
Number
メンバーシッププランの月額。(例:1500.00
)
membership.currency
String
membership.price
の通貨。以下のいずれかの値です。
JPY
:日本円TWD
:台湾ドルTHB
:タイバーツ
user
Object
ユーザーのメンバーシップ加入情報を含むオブジェクト。
user.membershipNo
Number
メンバーシッププランにおけるユーザーのメンバー番号。
user.joinedTime
Number
ユーザーがメンバーシップに加入した時刻。UNIX時間(秒)で返されます。
user.nextBillingDate
String
メンバーシッププランの次回更新日。
- フォーマット:
yyyy-MM-dd
(例:2024-02-08
) - タイムゾーン:UTC+9
user.totalSubscriptionMonths
Number
メンバーシッププランに加入している月単位の期間。ユーザーが過去に同一のメンバーシッププランを解約して、再加入した場合、再加入後の期間のみがカウントされます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なユーザーIDが指定されています。 |
404 | ユーザーが加入しているメンバーシップの情報が取得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# メンバーシップに加入しているユーザーの一覧を取得する
GET
https://api.line.me/v2/bot/membership/{membershipId}/users/ids
LINE公式アカウントのメンバーシップに加入しているユーザーのユーザーIDの一覧を取得できます。
# 取得できるユーザーIDに関する制限
ユーザーがメンバーシップに加入している場合でも、以下のいずれかの条件を満たす場合は、そのユーザーのユーザーIDは一覧に含まれません。
- ユーザーがLINEアカウントを削除している。
- ユーザーがLINE公式アカウントをブロックしている。
- ユーザーがLINE公式アカウントを友だち追加していない。
- ユーザーがプロフィール情報の取得に同意していない。詳しくは、『Messaging APIドキュメント』の「ユーザーのプロフィール情報取得の同意」を参照してください。
リクエストの例
# レート制限
200リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
membershipId
メンバーシップのID。
# クエリパラメータ
limit
Number
1回のリクエストで取得するユーザーIDの最大数。デフォルト値は300
です。
最大値:1000
start
継続トークンの値。レスポンスで返されるJSONオブジェクトのnext
プロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得できます。
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
userIds
Array of strings
メンバーシップに加入しているユーザーのユーザーIDの配列。ユーザーの状況によってユーザーIDを取得できるかどうかが変わるため、userIds
プロパティに含まれるユーザーIDの数は、next
プロパティが返される場合でも、必ずlimit
クエリパラメータで指定した数になるとは限りません。詳しくは、「取得できるユーザーIDに関する制限」を参照してください。
ユーザーIDの最大数:limit
クエリパラメータで指定した数
next
String
継続トークン。次のユーザーIDの一覧を取得するために使用します。このプロパティは、前回までのレスポンスのuserIds
プロパティで取得しきれなかったユーザーIDがある場合にのみ返されます。
継続トークンの有効期限は24時間(86,400秒間)です。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
404 | membershipId パスパラメータに存在しないメンバーシップIDを指定しています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 提供中のメンバーシッププランを取得する
GET
https://api.line.me/v2/bot/membership/list
LINE公式アカウントのメンバーシップで提供中の、メンバーシッププランを取得できます。
審査中のプランや終了後のプランは含まれません。
リクエストの例
# レート制限
200リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
memberships
Array
提供中のメンバーシッププランの配列です。
プランの最大数:5
memberships[].membershipId
Number
メンバーシッププランのID。
memberships[].title
String
メンバーシッププランのプラン名。
memberships[].description
String
メンバーシッププランの説明。
memberships[].benefits
Array of strings
メンバーシッププランの特典のリスト。
特典の最大数:5
memberships[].price
Number
メンバーシッププランの月額。(例:1500.00
)
memberships[].currency
String
memberships[].price
の通貨。以下のいずれかの値です。
JPY
:日本円TWD
:台湾ドルTHB
:タイバーツ
memberships[].memberCount
Number
加入しているメンバー数。
memberships[].memberLimit
Number
加入できるメンバー数の上限。上限を設定していない場合はnull
になります。
memberships[].isInAppPurchase
Boolean
加入ユーザーの支払い方法。
true
:App内課金false
:Web決済
memberships[].isPublished
Boolean
メンバーシッププランのステータス。
true
:公開中false
:非公開(終了手続きを行い、プランが非公開になったが、まだ特典の提供は終了していない状態)
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
404 | 提供中のメンバーシッププランがありません。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ボット
LINE公式アカウントのボットの基本情報を取得できます。
# ボットの情報を取得する
GET
https://api.line.me/v2/bot/info
ボットの基本情報を取得します。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
userId
String
ボットのユーザーID
basicId
String
ボットのベーシックID
premiumId
String
ボットのプレミアムID。プレミアムIDが未設定の場合、この値は含まれません。
displayName
String
ボットの表示名
pictureUrl
String
プロフィール画像のURL。「https://」から始まる画像URLです。ボットにプロフィール画像を設定していない場合は、レスポンスに含まれません。
chatMode
String
LINE Official Account Manager (opens new window)のチャットの設定。以下のいずれかの値が返ります。
chat
:チャットがオンに設定されています。bot
:チャットがオフに設定されています。
markAsReadMode
String
メッセージの自動既読設定。チャットを「オフ」にしていればauto
、「オン」にしていればmanual
が返ります。
auto
:自動既読設定が有効です。manual
:自動既読設定が無効です。
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# グループトーク
LINE公式アカウントが参加しているグループトークの情報や、グループトークのメンバーの情報を取得できます。
# グループトークの概要を取得する
GET
https://api.line.me/v2/bot/group/{groupId}/summary
LINE公式アカウントが参加しているグループトークのグループID、グループ名、アイコンのURLを取得します。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
groupId
グループID。Webhookイベントオブジェクトのsource
オブジェクトで確認できます。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
groupId
String
グループID
groupName
String
グループ名
pictureUrl
String
グループのアイコンのURL。ユーザーがグループのプロフィール画像を設定していない場合はレスポンスに含まれません。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なグループIDが指定されています。 |
404 | 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# グループトークに参加しているユーザーの人数を取得する
GET
https://api.line.me/v2/bot/group/{groupId}/members/count
グループトークに参加しているユーザーの人数を取得します。参加しているユーザーが、LINE公式アカウントを友だち追加していない場合や、LINE公式アカウントをブロックしている場合でも、人数に含まれます。
人数に、LINE公式アカウントは含まれません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
groupId
グループID。Webhookイベントオブジェクトのsource
オブジェクトで確認できます。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
count
Number
グループトークに参加しているユーザーの人数。人数に、LINE公式アカウントは含まれません。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なグループIDが指定されています。 |
404 | 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# グループトークのメンバーのユーザーIDを取得する
GET
https://api.line.me/v2/bot/group/{groupId}/members/ids
この機能は認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。
LINE公式アカウントが参加しているグループトークのメンバーの、ユーザーIDを取得するAPIです。LINE公式アカウントを友だちとして追加していないユーザーや、LINE公式アカウントをブロックしているユーザーのユーザーIDも取得します。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
groupId
グループID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。
# クエリパラメータ
start
継続トークンの値。レスポンスで返されるJSONオブジェクトのnext
プロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
memberIds
Array of strings
グループトークのメンバーのユーザーIDのリスト。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみmemberIds
に含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。
最大ユーザー数:100
next
String
継続トークン。グループトークのメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIds
で取得しきれなかったユーザーIDがある場合にのみ返されます。
継続トークンの有効期間は24時間(86,400秒間)です。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
403 | このエンドポイントを使う権限がありません。認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。 |
404 | 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# グループトークのメンバーのプロフィール情報を取得する
GET
https://api.line.me/v2/bot/group/{groupId}/member/{userId}
LINE公式アカウントが参加しているグループトークのメンバーのユーザーIDが既知である場合に、そのメンバーのプロフィール情報を取得するAPIです。
LINE公式アカウントを友だちとして追加しているかどうかや、LINE公式アカウントをブロックしているかどうかに関わらず、そのグループトークに参加しているユーザーであればプロフィール情報を取得できます。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
groupId
グループID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。
userId
ユーザーID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
displayName
String
表示名
userId
String
ユーザーID
pictureUrl
String
プロフィール画像のURL。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
404 | プロフィール情報を取得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# グループトークから退出する
POST
https://api.line.me/v2/bot/group/{groupId}/leave
グループトークから退出するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
groupId
グループID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なグループIDが指定されています。 |
404 | 存在しないグループやLINE公式アカウントが参加していないグループが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 複数人トーク
LINE公式アカウントが参加している複数人トークの情報や、複数人トークのメンバーの情報を取得できます。
# 複数人トークに参加しているユーザーの人数を取得する
GET
https://api.line.me/v2/bot/room/{roomId}/members/count
複数人トークに参加しているユーザーの人数を取得します。参加しているユーザーが、LINE公式アカウントを友だち追加していない場合や、LINE公式アカウントをブロックしている場合でも、人数に含まれます。
人数に、LINE公式アカウントは含まれません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# Path parameters
roomId
トークルームID。Webhookイベントオブジェクトのsource
オブジェクトで確認できます。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
count
Number
複数人トークに参加しているユーザーの人数。人数に、LINE公式アカウントは含まれません。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なトークルームIDが指定されています。 |
404 | 存在しない複数人トークやLINE公式アカウントが参加していない複数人トークが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 複数人トークのメンバーのユーザーIDを取得する
GET
https://api.line.me/v2/bot/room/{roomId}/members/ids
この機能は認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。アカウント種別について詳しくは、『LINEヤフー for Business』の「LINE公式アカウント アカウント種別 (opens new window)」を参照してください。
LINE公式アカウントが参加している複数人トークのメンバーの、ユーザーIDを取得するAPIです。LINE公式アカウントを友だちとして追加していないユーザーや、LINE公式アカウントをブロックしているユーザーのユーザーIDも取得します。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
roomId
トークルームID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。
# クエリパラメータ
start
継続トークンの値。レスポンスで返されるJSONオブジェクトのnext
プロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
memberIds
Array of strings
複数人トークのメンバーのユーザーIDのリスト。iOS版LINEまたはAndroid版LINEを使用しているユーザーのみmemberIds
に含まれます。詳しくは、「ユーザーのプロフィール情報取得の同意」を参照してください。
最大ユーザー数:100
next
String
継続トークン。複数人トークのメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIds
で取得しきれなかったユーザーIDがある場合にのみ返されます。
継続トークンの有効期間は24時間(86,400秒間)です。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
403 | このエンドポイントを使う権限がありません。認証済アカウントまたはプレミアムアカウントでのみご利用いただけます。 |
404 | 存在しない複数人トークやLINE公式アカウントが参加していない複数人トークが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 複数人トークのメンバーのプロフィールを取得する
GET
https://api.line.me/v2/bot/room/{roomId}/member/{userId}
LINE公式アカウントが参加している複数人トークのメンバーのユーザーIDが既知である場合に、そのメンバーのプロフィール情報を取得するAPIです。
LINE公式アカウントを友だちとして追加しているかどうかや、LINE公式アカウントをブロックしているかどうかに関わらず、その複数人トークに参加しているユーザーであればプロフィール情報を取得できます。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
roomId
トークルームID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。
userId
ユーザーID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
displayName
String
表示名
userId
String
ユーザーID
pictureUrl
String
プロフィール画像のURL。ユーザーがプロフィール画像を設定していない場合はレスポンスに含まれません。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストに問題があります。次のような理由が考えられます。
|
404 | プロフィール情報を取得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 複数人トークから退出する
POST
https://api.line.me/v2/bot/room/{roomId}/leave
複数人トークから退出するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
roomId
トークルームID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
LINE公式アカウントが参加していない複数人トークを指定した場合も、ステータスコード200
を返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なトークルームIDが指定されています。 |
404 | 存在しない複数人トークが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニュー
LINE公式アカウントのトーク画面に表示される、カスタマイズ可能なメニューです。詳しくは、「リッチメニューを使う」を参照してください。
POST
/v2/bot/richmenu
POST
/v2/bot/richmenu/validate
POST
/v2/bot/richmenu/{richMenuId}/content
GET
/v2/bot/richmenu/{richMenuId}/content
GET
/v2/bot/richmenu/list
GET
/v2/bot/richmenu/{richMenuId}
DELETE
/v2/bot/richmenu/{richMenuId}
POST
/v2/bot/user/all/richmenu/{richMenuId}
GET
/v2/bot/user/all/richmenu
DELETE
/v2/bot/user/all/richmenu
# リッチメニューを作成する
POST
https://api.line.me/v2/bot/richmenu
リッチメニューを作成するAPIです。
リッチメニューを表示するには、リッチメニューの画像をアップロードし、さらにデフォルトのリッチメニューを設定するかリッチメニューをユーザーとリンクする必要があります。1つのLINE公式アカウントに対して、Messaging APIを使って最大で1000件のリッチメニューを作成できます。
リッチメニューオブジェクトを検証するためのエンドポイントもあります。
リクエストの例
# レート制限
100リクエスト/時
LINE Official Account Managerを使ってリッチメニューを作成・削除する場合は制限の対象外です。
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
リッチメニューとして表示するリッチメニューオブジェクトを指定します。
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
richMenuId
String
リッチメニューのID。リッチメニューの画像をアップロードする際に使用します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューを作成できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューオブジェクトを検証する
POST
https://api.line.me/v2/bot/richmenu/validate
リッチメニューオブジェクトを検証するAPIです。
リッチメニューオブジェクトが、リッチメニューの作成のリクエストボディとして有効かを検証できます。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
検証したいリッチメニューオブジェクトを指定します。
# レスポンス
リクエストボディがリッチメニューオブジェクトとして有効な場合、ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なリッチメニューオブジェクトが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューの画像をアップロードする
POST
https://api-data.line.me/v2/bot/richmenu/{richMenuId}/content
このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me
)です。他のエンドポイントのドメイン名(api.line.me
)とは異なるため、利用時は注意してください。
画像をアップロードしてリッチメニューに設定するAPIです。
# リッチメニューの画像の要件
リッチメニューの画像は以下の要件を満たす必要があります。
- 画像フォーマット:JPEGまたはPNG
- 画像の幅サイズ:800ピクセル以上、2500ピクセル以下
- 画像の高さサイズ:250ピクセル以上
- 画像のアスペクト比(幅÷高さ):1.45以上
- 最大ファイルサイズ:1MB
リッチメニューに設定された画像を置き換えることはできません。リッチメニューの画像を更新するには、新しいリッチメニューオブジェクトを作成して、新しい画像をアップロードします。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
image/jpeg
またはimage/png
# パスパラメータ
richMenuId
画像を設定するリッチメニューのID
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューに画像を設定できませんでした。次のような理由が考えられます。
|
404 | 存在しないリッチメニューが指定されています。 |
415 | Content-Type にサポートされていないメディア形式が指定されています(image/jpeg およびimage/png 以外)。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューの画像をダウンロードする
GET
https://api-data.line.me/v2/bot/richmenu/{richMenuId}/content
このエンドポイントは、Messaging APIにおけるLINEプラットフォームへの大容量データ送受信用のドメイン名(api-data.line.me
)です。他のエンドポイントのドメイン名(api.line.me
)とは異なるため、利用時は注意してください。
リッチメニューの画像をダウンロードするAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
richMenuId
画像をダウンロードするリッチメニューのID
# レスポンス
ステータスコード200
とリッチメニュー画像のバイナリデータを返します。リクエストの例に示すように、画像をダウンロードできます。
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
404 | 画像をダウンロードできませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューの配列を取得する
GET
https://api.line.me/v2/bot/richmenu/list
「リッチメニューを作成する」で作成したすべてのリッチメニューのリッチメニューレスポンスオブジェクトを取得します。
LINE Official Account Managerで作成したリッチメニューは取得できません。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
richmenus
Array
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# リッチメニューを取得する
GET
https://api.line.me/v2/bot/richmenu/{richMenuId}
IDを指定してリッチメニューを取得するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
richMenuId
リッチメニューのID
# レスポンス
ステータスコード200
と、リッチメニューレスポンスオブジェクトを含むJSONレスポンスが返されます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
404 | 存在しないリッチメニューが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューを削除する
DELETE
https://api.line.me/v2/bot/richmenu/{richMenuId}
リッチメニューを削除します。
Messaging APIで作成できるリッチメニューの数の上限は、LINE公式アカウントあたり1,000件です。この上限を超過した場合は、新しいリッチメニューを作成する前に既存のリッチメニューを削除する必要があります。
リクエストの例
# レート制限
100リクエスト/時
LINE Official Account Managerを使ってリッチメニューを作成・削除する場合は制限の対象外です。
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
richMenuId
リッチメニューのID
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
404 | 存在しないリッチメニューが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# デフォルトのリッチメニューを設定する
POST
https://api.line.me/v2/bot/user/all/richmenu/{richMenuId}
デフォルトのリッチメニューを設定するAPIです。デフォルトのリッチメニューは、LINE公式アカウントとのトーク画面を開いたすべてのユーザーに表示されます。すでにデフォルトのリッチメニューが設定されていた場合は、新しく指定したリッチメニューに置き換えられます。
リッチメニューの表示優先順位は高い順に以下のとおりです。
- Messaging APIで設定するユーザー単位のリッチメニュー
- Messaging APIで設定するデフォルトのリッチメニュー
- LINE Official Account Managerで設定するデフォルトのリッチメニュー
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
richMenuId
リッチメニューのID
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューに画像が設定されていません。 |
404 | 存在しないリッチメニューが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# デフォルトのリッチメニューのIDを取得する
GET
https://api.line.me/v2/bot/user/all/richmenu
Messaging APIで設定したデフォルトのリッチメニューのIDを取得するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
richMenuId
String
リッチメニューのID
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
403 | LINE Official Account Managerなど、別のチャネルによってデフォルトのリッチメニューが設定されています。 |
404 | デフォルトのリッチメニューが設定されていません。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# デフォルトのリッチメニューを解除する
DELETE
https://api.line.me/v2/bot/user/all/richmenu
Messaging APIで設定したデフォルトのリッチメニューを解除するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# ユーザー単位のリッチメニュー
ユーザーIDとリッチメニューのIDを指定することで、リッチメニューをユーザー単位で設定できます。詳しくは、『Messaging APIドキュメント』の「ユーザー単位のリッチメニューを使う」を参照してください。
# リッチメニューとユーザーをリンクする
POST
https://api.line.me/v2/bot/user/{userId}/richmenu/{richMenuId}
リッチメニューとユーザーをリンクするAPIです。複数のリッチメニューを1人のユーザーに同時にリンクすることはできません。ユーザーにすでにリッチメニューがリンクされていた場合は、新しく指定したリッチメニューに置き換えられます。
リッチメニューの表示優先順位は高い順に以下のとおりです。
- Messaging APIで設定するユーザー単位のリッチメニュー
- Messaging APIで設定するデフォルトのリッチメニュー
- LINE Official Account Managerで設定するデフォルトのリッチメニュー
# リッチメニューをリンクできる条件
リッチメニューは、LINE公式アカウントを友だち追加しているユーザーに対してリンクできます。
なお、以下のユーザーに対してリッチメニューをリンクしようとした場合、ステータスコード200
が返されますが、実際にはリッチメニューはリンクされません。
- LINEアカウントを削除したユーザー
- LINE公式アカウントをブロックしているユーザー
- LINE公式アカウントを友だち追加していないユーザー
- 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
richMenuId
リッチメニューのID
userId
ユーザーID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューをリンクできませんでした。次のような理由が考えられます。
|
404 | 存在しないリッチメニューが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、リッチメニューはリンクされません。
エラーレスポンスの例
# リッチメニューと複数のユーザーをリンクする
POST
https://api.line.me/v2/bot/richmenu/bulk/link
リッチメニューと複数のユーザーをリンクします。
リッチメニューの表示優先順位は高い順に以下のとおりです。
- Messaging APIで設定するユーザー単位のリッチメニュー
- Messaging APIで設定するデフォルトのリッチメニュー
- LINE Official Accountで設定するデフォルトのリッチメニュー
リッチメニューと1人のユーザーをリンクする場合と異なり、このエンドポイントのリクエストはバックグラウンドで非同期に処理されます。通常、処理は数秒で完了します。
ステータスコード202
が返されたとしても、リッチメニューがリンクされていない場合があります。リクエストの処理が成功したかどうかを検証するには、ユーザーのリッチメニューのIDを取得して、リッチメニューがユーザーにリンクされていることを確認します。
なお、エラーレスポンスが返された場合は、リッチメニューはどのユーザーにもリンクされません。
# リッチメニューをリンクできる条件
リッチメニューは、LINE公式アカウントを友だち追加しているユーザーに対してリンクできます。レスポンスでステータスコード202
が返された場合、リクエストで指定したユーザーにはリッチメニューがリンクされます。
ステータスコード202
が返されたとしても、以下のユーザーは対象のLINE公式アカウントと友だちではないため、処理の対象となりません。
- LINEアカウントを削除したユーザー
- LINE公式アカウントをブロックしているユーザー
- LINE公式アカウントを友だち追加していないユーザー
- 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
richMenuId
String
リッチメニューのID
userIds
Array of strings
ユーザーIDの配列。Webhookイベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
最大ユーザーID数:500
# レスポンス
ステータスコード202
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューをリンクできませんでした。次のような理由が考えられます。
|
404 | 存在しないリッチメニューが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# ユーザーのリッチメニューのIDを取得する
GET
https://api.line.me/v2/bot/user/{userId}/richmenu
ユーザーにリンクされたリッチメニューのIDを取得するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
userId
ユーザーID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
richMenuId
String
リッチメニューのID
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なユーザーIDが指定されています。 |
404 | リッチメニューのIDを取得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューとユーザーのリンクを解除する
DELETE
https://api.line.me/v2/bot/user/{userId}/richmenu
指定したユーザーにリンクされたユーザー単位のリッチメニューを解除するAPIです。
# リッチメニューのリンクを解除できる条件
リッチメニューのリンクの解除は、LINE公式アカウントを友だち追加しているユーザーに対して可能です。
なお、以下のユーザーに対してリッチメニューのリンクを解除しようとした場合、ステータスコード200
が返されますが、実際にはリッチメニューのリンクは解除されません。
- LINEアカウントを削除したユーザー
- LINE公式アカウントをブロックしているユーザー
- LINE公式アカウントを友だち追加していないユーザー
- 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
userId
ユーザーID。Webhookイベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なユーザーIDが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# 複数のユーザーのリッチメニューのリンクを解除する
POST
https://api.line.me/v2/bot/richmenu/bulk/unlink
複数のユーザーのリッチメニューのリンクを解除します。
リッチメニューと1人のユーザーのリンクを解除する場合と異なり、このエンドポイントのリクエストはバックグラウンドで非同期に処理されます。通常、処理は数秒で完了します。
ステータスコード202
が返されたとしても、リッチメニューのリンクが解除されていない場合があります。リクエストの処理が成功したかどうかを検証するには、ユーザーのリッチメニューのIDを取得して、リンクを解除したはずのリッチメニューがユーザーにリンクされていないことを確認します。
なお、エラーレスポンスが返された場合は、どのユーザーのリッチメニューのリンクも解除されません。
# リッチメニューのリンクを解除できる条件
リッチメニューのリンクの解除は、LINE公式アカウントを友だち追加しているユーザーに対して可能です。レスポンスでステータスコード202
が返された場合、リクエストで指定したユーザーのリッチメニューのリンクが解除されます。
ステータスコード202
が返されたとしても、以下のユーザーは対象のLINE公式アカウントと友だちではないため、処理の対象となりません。
- LINEアカウントを削除したユーザー
- LINE公式アカウントをブロックしているユーザー
- LINE公式アカウントを友だち追加していないユーザー
- 他のプロバイダー配下のチャネルで取得したユーザーIDなど、チャネルにユーザーIDが存在しないユーザー
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Content-Type
application/json
Authorization
Bearer {channel access token}
# リクエストボディ
userIds
Array of strings
ユーザーIDの配列。Webhookイベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
最大ユーザーID数:500
# レスポンス
ステータスコード202
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なユーザーIDが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リンク済みのリッチメニューを一括で置き換え・解除する
POST
https://api.line.me/v2/bot/richmenu/batch
リッチメニューとユーザーをリンクするエンドポイントなどを利用して、ユーザーにリンクしたリッチメニューを一括操作するエンドポイントです。このエンドポイントでは、以下のような操作が可能です。
- 特定のリッチメニューをリンク済みのすべてのユーザーを対象に、リッチメニューを別のリッチメニューに置き換える。
- 特定のリッチメニューをリンク済みのすべてのユーザーを対象に、リッチメニューのリンクを解除する。
- リッチメニューをリンク済みのすべてのユーザーを対象に、リッチメニューのリンクを解除する。
また、リクエストボディのoperations
プロパティには、リッチメニューの一括操作を複数指定できます。リッチメニューの一括操作を複数指定した場合、それぞれの操作は独立に並行してユーザーごとに処理されます。指定した操作は互いに影響しません。
たとえば、operations
プロパティに以下の配列を指定した場合、リクエスト前にリッチメニューAをリンク済みのユーザーのリッチメニューはBに、リクエスト前にリッチメニューBをリンク済みのユーザーのリッチメニューはCに置き換わります。操作は互いに影響しないため、リクエスト前にリッチメニューAをリンク済みのユーザーのリッチメニューはCには置き換わりません。
[
{
"type": "link",
"from": "{リッチメニューAのID}",
"to": "{リッチメニューBのID}"
},
{
"type": "link",
"from": "{リッチメニューBのID}",
"to": "{リッチメニューCのID}"
}
]
リッチメニューの一括操作は、バックグラウンドで非同期に処理されます。処理の進行状況は、リッチメニューの一括操作の進行状況を取得するエンドポイントで確認できます。
# リトライ時に意図しない操作を避けるための方法
resumeRequestKey
プロパティを使用することで、安全にリトライすることができます。
以下のような場合に、resumeRequestKey
プロパティを使用せずにリトライをすると、意図しない内容でリッチメニューが置き換わってしまう可能性があります。
- タイムアウトやLINEプラットフォームの内部サーバーのエラーなどにより、リクエストが受理されたかどうかがわからない場合
- リッチメニューの一括操作の進行状況を取得した結果、レスポンスの
phase
プロパティがfailed
の場合
このような状況でも、初回のリクエストでresumeRequestKey
プロパティに任意のキーを指定していた場合、同じキーを指定して再度リクエストを送ることで、処理が完了していないユーザーに対してのみ再度処理が行われます。
resumeRequestKey
プロパティの有効期間は14日間(336時間)です。有効期限が切れた場合、新しいリクエストとして扱われます。
リッチメニューの置き換えと、リッチメニューのリンクを解除するリクエストの例
リンク済みのリッチメニューを、すべてのユーザーから解除するリクエストの例
# レート制限
3リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
事前にリクエストボディが有効かを検証できる、リッチメニューの一括操作のリクエストを検証するエンドポイントもあります。
検証用のエンドポイントを使うことで、このエンドポイントのレート制限に適用されることなく、リクエストがエラーにならないことを事前に確認できます。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# リクエストボディ
operations
リッチメニューの一括操作を指定します。
最大件数:1,000件
resumeRequestKey
String
リトライ用のキー。[0-9a-zA-Z\-_]{1,100}
の正規表現にマッチする文字列。
# リッチメニュー操作オブジェクト
リッチメニュー操作オブジェクトは、ユーザーにリンク済みのリッチメニューへの一括操作を表すオブジェクトです。
type
String
ユーザーにリンク済みのリッチメニューへの操作内容。以下のいずれかの値を指定します。
link
:from
プロパティで指定されたリッチメニューがリンク済みのすべてのユーザーを対象に、リッチメニューをto
プロパティで指定されたリッチメニューに置き換える。unlink
:from
プロパティで指定されたリッチメニューがリンク済みのすべてのユーザーを対象に、リッチメニューのリンクを解除する。unlinkAll
:リッチメニューがリンクされている、すべてのユーザーとリッチメニューのリンクを解除する。
unlinkAll
を指定した場合、unlinkAll
以外のtype
をoperations
プロパティに含めることはできません。
from
String
リッチメニューのID。
置き換える前のリッチメニューのID、またはリンクを解除するリッチメニューのIDを指定します。
operations
プロパティに複数の操作を指定する際に、同じリッチメニューのIDを複数のfrom
プロパティに指定することはできません。
to
String
リッチメニューのID。
置き換え先のリッチメニューのIDを指定します。
# レスポンス
ステータスコード202
と空のJSONオブジェクトを返します。
リッチメニューの一括操作は、バックグラウンドで非同期に処理されます。処理の進行状況は、リッチメニューの一括操作の進行状況を取得するエンドポイントで確認できます。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューを操作できませんでした。次のような理由が考えられます。
|
404 | 存在しないリッチメニューが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーが返された場合、リッチメニューは操作されません。
エラーレスポンスの例
# リッチメニューの一括操作の進行状況を取得する
GET
https://api.line.me/v2/bot/richmenu/progress/batch
リンク済みのリッチメニューを一括で置き換え・解除したときの進行状況を取得します。
進行状況を取得できる期間は、acceptedTime
プロパティの値(タイムスタンプ)から14日間(336時間)です。
リクエストの例
# レート制限
100リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# クエリパラメータ
requestId
ユーザーにリンク済みのリッチメニューを一括で操作したときのリクエストID。リクエストIDは、Messaging APIのリクエストごとに発行されるIDです。レスポンスヘッダーに含まれます。
# レスポンス
HTTPステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
phase
String
進行状況。以下のいずれかの値です。
ongoing
:リッチメニューの一括操作が進行中です。succeeded
:リッチメニューの一括操作が完了しました。failed
:リッチメニューの一括操作に失敗しました。これは、1人以上のユーザーのリッチメニューを操作できなかったことを意味します。また、操作が正常に完了したユーザーも存在する可能性があります。
acceptedTime
String
リッチメニューの一括操作のリクエストを受け付けた時間をミリ秒で表します。
- フォーマット:ISO 8601 (opens new window)(例:
2020-12-03T10:15:30.121Z
) - タイムゾーン:UTC
completedTime
String
リッチメニューの一括操作が完了した時間をミリ秒で表します。phase
プロパティがsucceeded
またはfailed
の場合にのみ返されます。
- フォーマット:ISO 8601 (opens new window)(例:
2020-12-03T10:15:30.121Z
) - タイムゾーン:UTC
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なリクエストIDが指定されています。 |
404 | 進行状況を所得できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューの一括操作のリクエストを検証する
POST
https://api.line.me/v2/bot/richmenu/validate/batch
リンク済みのリッチメニューを一括で置き換え・解除するエンドポイントのリクエストボディが有効かを検証します。
このエンドポイントを利用することで、リンク済みのリッチメニューを一括で置き換え・解除するときと同様に、以下のようなエラーを検出できます。
- 指定したリッチメニューが存在しない場合
- 指定したリッチメニューに画像が設定されていない場合
operations
プロパティに複数の操作を指定し、その内容が誤っている場合operations
プロパティに1,000件を超える配列を指定しているtype
プロパティにunlinkAll
と、それ以外type
を同時に指定している- 同じリッチメニューのIDを複数の
from
プロパティに指定している
resumeRequestKey
プロパティに指定した文字列が無効な場合
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# リクエストボディ
operations
リッチメニューへの一括操作の内容を定義します。
最大件数:1,000件
resumeRequestKey
String
リトライ用のキー。[0-9a-zA-Z\-_]{1,100}
の正規表現にマッチする文字列。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リクエストボディの検証に失敗しました。次のような理由が考えられます。
|
404 | 存在しないリッチメニューが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューエイリアス
リッチメニューエイリアスとリッチメニュー切替アクションを使うことで、タブ切り替えが可能なリッチメニューをユーザーに提供できます。詳しくは、『Messaging APIドキュメント』の「リッチメニューでタブ切り替えを行う」を参照してください。
# リッチメニューエイリアスを作成する
POST
https://api.line.me/v2/bot/richmenu/alias
リッチメニューエイリアスを作成するAPIです。
リッチメニューエイリアスを作成するには、事前に以下の作業をしておく必要があります。詳しくは、『Messaging APIドキュメント』の「リッチメニューでタブ切り替えを行う」を参照してください。
1つのLINE公式アカウントに対して、Messaging APIを使って最大で1000件のリッチメニューエイリアスを作成できます。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# リクエストボディ
richMenuAliasId
String
リッチメニューエイリアスのID。チャネルごとに一意の、任意のIDを指定できます。
- 最大文字数:32
- 使用可能文字種:半角英数字(
a
〜z
、0
~9
)、アンダースコア(_
)、ハイフン(-
)
richMenuId
String
リッチメニューエイリアスと紐づけるリッチメニューのID。
リッチメニューエイリアスと紐づけられるのは、同じチャネルで作成されたリッチメニューのみです。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューエイリアスを作成できませんでした。次のような理由が考えられます。
|
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューエイリアスを削除する
DELETE
https://api.line.me/v2/bot/richmenu/alias/{richMenuAliasId}
リッチメニューエイリアスを削除するAPIです。
Messaging APIで作成できるリッチメニューエイリアスの数の上限は、LINE公式アカウントあたり1,000件です。この上限を超過した場合は、新しいリッチメニューエイリアスを作成する前に既存のリッチメニューエイリアスを削除する必要があります。
リクエストの例
# レート制限
100リクエスト/時
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
richMenuAliasId
削除したいリッチメニューエイリアスのID。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なリッチメニューエイリアスIDが指定されています。 |
404 | 存在しないリッチメニューエイリアスが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューエイリアスを更新する
POST
https://api.line.me/v2/bot/richmenu/alias/{richMenuAliasId}
リッチメニューエイリアスを更新するAPIです。既存のリッチメニューエイリアスを指定して、紐づくリッチメニューを変更できます。
リッチメニューエイリアスの更新は、キャッシュデータの影響により、直ちに反映されない可能性があります。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
Content-Type
application/json
# パスパラメータ
richMenuAliasId
更新したいリッチメニューエイリアスのID
# リクエストボディ
richMenuId
String
リッチメニューエイリアスと紐づけるリッチメニューのID
リッチメニューエイリアスと紐づけられるのは、同じチャネルで作成されたリッチメニューのみです。
# レスポンス
ステータスコード200
と空のJSONオブジェクトを返します。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | リッチメニューエイリアスを更新できませんでした。次のような理由が考えられます。
|
404 | 存在しないリッチメニューエイリアスが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューエイリアスの情報を取得する
GET
https://api.line.me/v2/bot/richmenu/alias/{richMenuAliasId}
リッチメニューエイリアスのIDを指定して、リッチメニューエイリアスの情報を取得するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
richMenuAliasId
情報を取得したいリッチメニューエイリアスのID。
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
richMenuAliasId
String
リッチメニューエイリアスのID。
richMenuId
String
リッチメニューエイリアスと紐づくリッチメニューのID。
レスポンスの例
# エラーレスポンス
以下のHTTPステータスコードと、エラーレスポンスを返します。
コード | 説明 |
---|---|
400 | 無効なリッチメニューエイリアスIDが指定されています。 |
404 | 存在しないリッチメニューエイリアスが指定されています。 |
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
エラーレスポンスの例
# リッチメニューエイリアスの一覧を取得する
GET
https://api.line.me/v2/bot/richmenu/alias/list
リッチメニューエイリアスの一覧を取得するAPIです。
リクエストの例
# レート制限
2,000リクエスト/秒
レート制限について詳しくは、「レート制限」を参照してください。
# リクエストヘッダー
Authorization
Bearer {channel access token}
# レスポンス
ステータスコード200
と以下の情報を含むJSONオブジェクトを返します。
aliases[].richMenuAliasId
String
リッチメニューエイリアスのID。
aliases[].richMenuId
String
リッチメニューエイリアスと紐づくリッチメニューのID。
レスポンスの例
# エラーレスポンス
詳しくは、共通仕様の「ステータスコード」および「エラーレスポンス」を参照してください。
# アカウント連携
プロバイダー(企業や開発者)が提供するサービスのアカウントと、LINEユーザーのアカウントを連携できます。
# 連携トークンを発行する
POST
https://api.line.me/v2/bot/user/{userId}/linkToken
アカウント連携で使用する連携トークンを発行するAPIです。
リクエストの例
# リクエストヘッダー
Authorization
Bearer {channel access token}
# パスパラメータ
userId
連携対象のLINEアカウントのユーザーID。アカウント連携イベントオブジェクトのsource
オブジェクトで返されます。LINEに表示されるLINE IDは使用しないでください。
# レスポンス
ステータスコード200
と以下のプロパティを含むJSONオブジェクトを返します。
linkToken
String
連携トークン。連携トークンの有効期間は10分で、1回のみ使用できます。
有効期間は予告なく変わる可能性があります。
レスポンスの例
# メッセージオブジェクト
送信するメッセージの内容を表すJSONオブジェクトです。
以下のエンドポイントを使用すると、メッセージオブジェクトが有効かを検証できます。
# メッセージ共通プロパティ
以下のプロパティはすべてのメッセージオブジェクトに指定できます。
# クイックリプライ
クイックリプライ機能で使用するプロパティです。詳しくは、「クイックリプライを使う」を参照してください。
quickReply
Object
複数のメッセージオブジェクトを受信したユーザーには、最後のメッセージオブジェクトのquickReply
プロパティが表示されます。
# itemsオブジェクト
クイックリプライボタンのコンテナです。
items
Array of objects
クイックリプライボタンオブジェクト。
最大オブジェクト数:13
itemsオブジェクトの例
# クイックリプライボタンオブジェクト
ボタン形式で表示される、クイックリプライの選択肢です。
type
String
action
imageUrl
String
ボタンの先頭に表示するアイコンのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:PNG
アスペクト比:1:1(幅:高さ)
最大ファイルサイズ:1MB
画像サイズに制限はありません。
action
プロパティに指定するアクションがカメラアクション、カメラロールアクション、または位置情報アクションで、imageUrl
プロパティが未指定の場合、デフォルトのアイコンが表示されます。
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
action
Object
タップされたときのアクション。アクションオブジェクトを指定します。指定できるアクションの種類は以下のとおりです。
クイックリプライボタンが設定されたメッセージを未対応のLINEで受信すると、メッセージ本体のみが表示されます。
# アイコンと表示名のカスタマイズ
LINE公式アカウントからメッセージを送る際に、メッセージオブジェクトに、sender.name
プロパティとsender.iconUrl
プロパティを指定できます。
sender.name
String
表示名。LINE
など弊社のサービスと誤認される可能性があるワードは使用できません。
最大文字数:20
sender.iconUrl
String
メッセージ送信時にアイコンとして表示する画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:PNG
アスペクト比:1:1(幅:高さ)
最大ファイルサイズ:1MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
アイコンと表示名をカスタマイズするテキストメッセージの例
# テキストメッセージ
プロパティに指定するテキストの文字数、および絵文字の位置は、UTF-16でエンコーディングしたときの符号単位の数および位置です。たとえば、サロゲートペアを使用する文字や、UTF-16で表現できる絵文字など、文字によっては、1文字ではなく複数文字としてカウントする必要があります。
詳しくは、『Messaging APIドキュメント』の「テキストの文字数のカウント」を参照してください。
type
String
text
text
String
メッセージのテキスト。以下の絵文字を含めることができます。
- LINE絵文字。
$
をプレースホルダとして使用します。使用するLINE絵文字のプロダクトID
と絵文字ID
を、emojis
プロパティに指定してください。詳しくは、「LINE絵文字」を参照してください。 - Unicode絵文字。
最大文字数:5000
「LINE独自のUnicode絵文字」の代わりにemojis
プロパティを使った「LINE絵文字」を利用してください。
詳しくは、2022年4月1日のニュース、「2022年3月31日をもって、Messaging APIの「LINE独自のUnicode絵文字」を廃止しました」と「LINE絵文字」を参照してください。
emojis
LINE絵文字オブジェクトの配列
1個以上のLINE絵文字
最大個数:20
emojis.index
Number
テキストの先頭を0
とした、text
プロパティ内の$
(LINE絵文字のプレースホルダ)の位置。詳しくは、「テキストメッセージの例」を参照してください。
ここで指定した位置と、$
の位置が一致しない場合は、400 Bad request
が返されます。
emojis.productId
String
LINE絵文字の集合を示すプロダクトID。プロダクトIDについては、「LINE絵文字」を参照してください。
emojis.emojiId
String
絵文字ID。Messaging APIで送信できるLINE絵文字の絵文字IDについては、「LINE絵文字」を参照してください。
quoteToken
String
引用したいメッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
テキストメッセージの例
LINE絵文字を含むテキストメッセージの例
過去のメッセージを引用したテキストメッセージの例
# テキストメッセージ(v2)
テキストメッセージ(v2)は、テキストメッセージと異なり、{
と}
で囲まれた文字列をメンションや絵文字に置き換えることができます。
type
String
textV2
text
String
メッセージのテキスト。
{
と}
で囲まれた文字列を、substitution
プロパティを用いてメンションや絵文字に置き換えることができます。{
および}
を文字列として使用する場合は、{{
および}}
でエスケープしてください。また、{
と}
を使用する際は、以下のことに注意してください。
{
と}
はペアで使用する必要があります。{
と}
で囲まれた文字列は、substitution
プロパティを用いて置換内容を指定する必要があります。
最大文字数:5000
substitution
Object
text
プロパティの{
と}
で囲まれた部分の置換内容を指定するオブジェクト。
オブジェクトのキーに使用できる文字は、半角英数字(0-9a-zA-Z
)とアンダースコア(_
)です。また、キーの文字数は、最大で20文字です。
オブジェクトの値にはメンションオブジェクトまたは絵文字オブジェクトを指定できます。
オブジェクトの最大数:100
quoteToken
String
引用したいメッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
メンションと絵文字を指定したテキストメッセージ(v2)の例
# メンションオブジェクト
テキスト内で置き換えるメンションの内容を指定します。メンションオブジェクトを使用する際は、以下のことに注意してください。
- メンションオブジェクトは、応答メッセージまたはプッシュメッセージでのみ使用できます。
- メッセージの送信先は、グループトークまたは複数人トークである必要があります。
- メッセージを送信するLINE公式アカウントは、送信先であるグループトークまたは複数人トークのメンバーである必要があります。
- メンションされたすべてのユーザーは、そのメッセージの送信先であるグループトークまたは複数人トークのメンバーである必要があります。
- ひとつのメッセージで置換可能なメンションは20個までです。
なお、上記の2から4までの項目は、「応答メッセージのメッセージオブジェクトを検証する」または「プッシュメッセージのメッセージオブジェクトを検証する」エンドポイントでは検証できません。
type
String
mention
mentionee
Object
メンション先のオブジェクト。ユーザーオブジェクトまたは全体メンションオブジェクトを指定します。
# ユーザーオブジェクト
type
String
user
userId
String
メンションするユーザーのユーザーID。なお、LINEボットのユーザーIDは指定できません。
# 全体メンションオブジェクト
type
String
all
# 絵文字オブジェクト
テキスト内で置き換える絵文字の内容を指定します。ひとつのメッセージで置換可能な絵文字は20個までです。
type
String
emoji
productId
String
LINE絵文字の集合を示すプロダクトID。プロダクトIDについて詳しくは、『Messaging APIドキュメント』の「LINE絵文字」を参照してください。
emojiId
String
絵文字ID。Messaging APIで送信できるLINE絵文字の絵文字IDについて詳しくは、『Messaging APIドキュメント』の「LINE絵文字」を参照してください。
# スタンプメッセージ
type
String
sticker
packageId
String
スタンプセットのパッケージID。パッケージIDについては、スタンプを参照してください。
stickerId
String
スタンプID。Messaging APIで送信できるスタンプのスタンプIDについては、スタンプを参照してください。
quoteToken
String
引用したいメッセージの引用トークン。詳しくは、『Messaging APIドキュメント』の「引用トークンを取得する」を参照してください。
スタンプメッセージの例
過去のメッセージを引用したスタンプメッセージの例
# 画像メッセージ
type
String
image
originalContentUrl
String
画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:10MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
previewImageUrl
String
プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
なお、ユーザー端末の状況によっては、プレビュー画像としてoriginalContentUrl
プロパティの画像が使われる場合があります。
画像メッセージの例
# 動画メッセージ
動画を含むメッセージの送信に成功したとしても、ユーザーの端末上で動画を正しく再生できない場合があります。詳しくは、FAQの「メッセージとして送信した動画が再生できないのはなぜですか?」を参照してください。
- 一定以上に縦長・横長の動画を送信した場合、一部の環境では動画の一部が欠けて表示される場合があります。
originalContentUrl
で指定する動画と、previewImageUrl
で指定するプレビュー画像のアスペクト比は一致させてください。アスペクト比が異なると、動画の背面にプレビュー画像が表示されることがあります。
type
String
video
originalContentUrl
String
動画ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
動画フォーマット:mp4
最大ファイルサイズ:200MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
previewImageUrl
String
プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
trackingId
String
動画視聴完了イベントが発生したときに、動画を識別するためのID。trackingId
を付与した動画メッセージを送信した場合に限り、ユーザーが動画の視聴を完了すると動画視聴完了イベントが発生します。
複数のメッセージで同じIDを使用することができます。
- 最大文字数:100
- 使用可能文字種:半角英数字(
a
〜z
、A
~Z
、0
~9
)、記号(-.=,+*()%$&;:@{}!?<>[]
)
trackingId
プロパティは、グループトークや複数人トーク宛てのメッセージでは使用できません。
動画メッセージの例
# 音声メッセージ
type
String
audio
originalContentUrl
String
音声ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
音声フォーマット:mp3またはm4a
最大ファイルサイズ:200MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
duration
Number
音声ファイルの長さ(ミリ秒)
音声メッセージの例
# 位置情報メッセージ
type
String
location
title
String
タイトル
最大文字数:100
address
String
住所
最大文字数:100
latitude
Decimal
緯度
longitude
Decimal
経度
位置情報メッセージの例
# イメージマップメッセージ
イメージマップメッセージは、複数のタップ領域を設定した画像を送信できるメッセージです。画像全体に1つのタップ領域を割り当てることも、画像を区切って複数のタップ領域を設定することもできます。
また、画像の上で動画を再生したり、動画再生後にリンク先を設定したラベルを表示したりできます。
動画を含むメッセージの送信に成功したとしても、ユーザーの端末上で動画を正しく再生できない場合があります。詳しくは、FAQの「メッセージとして送信した動画が再生できないのはなぜですか?」を参照してください。
originalContentUrl
で指定する動画と、previewImageUrl
で指定するプレビュー画像のアスペクト比は一致させてください。アスペクト比が異なると、動画の背面にプレビュー画像が表示されることがあります。
type
String
imagemap
baseUrl
String
画像のベースURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
イメージマップメッセージで使える画像について詳しくは、「画像の設定方法」を参照してください。
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
altText
String
代替テキスト。ユーザーがメッセージを受信した際に、端末の通知やトークリストで画像の代替として表示されます。
最大文字数:400
baseSize.width
Number
基本画像の幅(px単位)。1040を指定します。
baseSize.height
Number
基本画像の幅を1040pxとした場合の高さ
video.originalContentUrl
String
動画ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
動画フォーマット:mp4
最大ファイルサイズ:200MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
一定以上に縦長・横長の動画を送信した場合、一部の環境では動画の一部が欠けて表示される場合があります。
video.previewImageUrl
String
プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
video.area.x
Number
イメージマップ領域の左端を基準とした動画領域の位置(横方向の相対位置)。0
以上の値を設定してください。
video.area.y
Number
イメージマップ領域の上端を基準とした動画領域の位置(縦方向の相対位置)。0
以上の値を設定してください。
video.area.width
Number
動画領域の幅
video.area.height
Number
動画領域の高さ
video.externalLink.linkUri
String
ウェブページのURL。動画再生後に表示されるラベルをタップしたときに呼び出されます。
最大文字数:1000
使用できるスキームは、http
、https
、line
、およびtel
です。 LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
video.externalLink.label
String
ラベル。動画の再生が終了した後に表示されます。
最大文字数:30
actions
画像がタップされたときのアクション
最大件数:50
※1 イメージマップで動画を再生する場合は必須です。
※2 イメージマップで動画を再生し、動画再生後にラベルを表示する場合は必須です。
2つのタップ領域を持つイメージマップメッセージの例
# 画像の設定方法
イメージマップメッセージで使用する画像は、以下の要件を満たす必要があります。
- 画像フォーマット: JPEGまたはPNG
- 画像の幅:240px、300px、460px、700px、および1040px
- 最大ファイルサイズ:10MB
イメージマップメッセージに、透過PNGを使用できます。
「baseUrl/{image width}
」というURL形式で、5つの異なるサイズの画像にアクセスできるようにしてください。LINEはユーザーのデバイスに応じて、適切な解像度の画像を取得します。
たとえば、画像のベースURLが「https://example.com/images/cats
」だった場合、幅が700pxの画像のURLは「https://example.com/images/cats/700
」になります。すべての画像のURLにアクセスして、画像が表示されることを確認してください。
画像の幅 | URLの例 |
---|---|
240px | https://example.com/bot/images/rm001/240 |
300px | https://example.com/bot/images/rm001/300 |
460px | https://example.com/bot/images/rm001/460 |
700px | https://example.com/bot/images/rm001/700 |
1040px | https://example.com/bot/images/rm001/1040 |
画像のURLには拡張子を含めないでください。「https://example.com/bot/images/rm001/700.png
」のように、URLに拡張子が含まれている場合、イメージマップメッセージでは画像が表示されません。
# イメージマップアクションオブジェクト
イメージマップに設定するアクションとタップ領域を表すオブジェクトです。領域がタップされると、アクションのタイプごとにそれぞれ以下のアクションが実行されます。
uri
:指定するURIにユーザーがリダイレクトされます。message
:指定するメッセージが送信されます。clipboard
:指定する文字列がユーザーの端末のクリップボードにコピーされます。
# イメージマップURIアクションオブジェクト
type
String
uri
label
String
アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
最大文字数:100
linkUri
String
ウェブページのURL
最大文字数:1000
使用できるスキームは、http
、https
、line
、およびtel
です。 LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
area
タップ領域の定義
イメージマップURIアクションオブジェクトの例
# イメージマップメッセージアクションオブジェクト
type
String
message
label
String
アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
最大文字数:100
text
String
送信するメッセージ
最大文字数:400
area
タップ領域の定義
イメージマップメッセージアクションオブジェクトの例
# イメージマップクリップボードアクションオブジェクト
iOS版LINEまたはAndroid版LINEのバージョン14.0.0
以降で動作します。
type
String
clipboard
label
String
アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
最大文字数:100
clipboardText
String
クリップボードにコピーされる文字列
- 最大文字数:1000
area
タップ領域の定義
イメージマップクリップボードアクションオブジェクトの例
# イメージマップ領域オブジェクト
タップ領域のサイズを表すオブジェクトです。画像の左上が座標の原点です。baseSize.width
プロパティとbaseSize.height
プロパティに基づいて指定します。
x
Number
領域の左端を基準としたタップ領域の位置(横方向の相対位置)。0
以上の値を設定してください。
y
Number
領域の上端を基準としたタップ領域の位置(縦方向の相対位置)。0
以上の値を設定してください。
width
Number
タップ領域の幅
height
Number
タップ領域の高さ
イメージマップ領域オブジェクトの例
# テンプレートメッセージ
テンプレートメッセージは、あらかじめレイアウトが定義されたテンプレートをカスタマイズして構築するメッセージです。詳しくは、「テンプレートメッセージ」を参照してください。
以下のタイプのテンプレートを利用できます。
# テンプレートメッセージオブジェクトの共通プロパティ
以下のプロパティは、すべてのテンプレートメッセージオブジェクトで共通です。
type
String
template
altText
String
代替テキスト。ユーザーがメッセージを受信した際に、端末の通知やトークリスト、引用メッセージでテンプレートメッセージの代替として表示されます。
最大文字数:400
# ボタンテンプレート
画像、タイトル、テキストに加えて、複数のアクションボタンが含まれたテンプレートです。
type
String
buttons
thumbnailImageUrl
String
画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大横幅サイズ:1024px
最大ファイルサイズ:10MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
画像のファイルメッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。
imageAspectRatio
String
画像のアスペクト比。以下のいずれかの値を指定します。
rectangle
:1.51:1square
:1:1
デフォルト値はrectangle
です。
imageSize
String
画像の表示形式。以下のいずれかの値を指定します。
cover
:画像領域全体に画像を表示します。画像領域に収まらない部分は切り詰められます。contain
:画像領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に余白が表示されます。
デフォルト値はcover
です。
imageBackgroundColor
String
画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF
(白)です。
title
String
タイトル
最大文字数:40
text
String
メッセージテキスト
画像もタイトルも指定しない場合の最大文字数:160
画像またはタイトルを指定する場合の最大文字数:60
defaultAction
画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション
actions
アクションオブジェクトの配列
タップされたときのアクション
最大件数:4
ボタンテンプレートメッセージの例
# 確認テンプレート
2つのアクションボタンを表示するテンプレートです。
type
String
confirm
text
String
メッセージのテキスト
最大文字数:240
actions
アクションオブジェクトの配列
タップされたときのアクション
2つのボタンに1つずつアクションを設定します。
確認テンプレートメッセージの例
# カルーセルテンプレート
複数のカラムを表示するテンプレートです。カラムは横にスクロールして順番に表示できます。
type
String
carousel
columns
カラムオブジェクトの配列
カラムの配列
最大カラム数:10
imageAspectRatio
String
画像のアスペクト比。以下のいずれかの値を指定します。
rectangle
:1.51:1square
:1:1
すべてのカラムに適用されます。デフォルト値はrectangle
です。
imageSize
String
画像の表示形式。以下のいずれかの値を指定します。
cover
:画像領域全体に画像を表示します。画像領域に収まらない部分は切り詰められます。contain
:画像領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に余白が表示されます。
すべてのカラムに適用されます。デフォルト値はcover
です。
カルーセルテンプレートメッセージの例
# カルーセルのカラムオブジェクト
thumbnailImageUrl
String
画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
アスペクト比:1.51:1(幅:高さ)
最大横幅サイズ:1024px
最大ファイルサイズ:10MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
画像のファイルメッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。
imageBackgroundColor
String
画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF
(白)です。
title
String
タイトル
最大文字数:40
text
String
メッセージテキスト
画像もタイトルも指定しない場合の最大文字数:120
画像またはタイトルを指定する場合の最大文字数:60
defaultAction
画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション
actions
アクションオブジェクトの配列
タップされたときのアクション
最大件数:3
各カラムのアクションの数は同じにします。画像またはタイトルの有無も、各カラムで統一してください。
# 画像カルーセルテンプレート
複数の画像を表示するテンプレートです。画像は横にスクロールして順番に表示できます。
type
String
image_carousel
columns
カラムオブジェクトの配列
カラムの配列
最大カラム数:10
画像カルーセルテンプレートメッセージの例
# 画像カルーセルのカラムオブジェクト
imageUrl
String
画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
アスペクト比:1:1(幅:高さ)
最大横幅サイズ:1024px
最大ファイルサイズ:10MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
画像のファイルメッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。
action
画像がタップされたときのアクション
# Flex Message
Flex Messageは、CSS Flexible Box(CSS Flexbox) (opens new window)の基礎知識を使って、レイアウトを自由にカスタマイズできるメッセージです。Flex Messageの概要については、『Messaging APIドキュメント』の「Flex Messageを送信する」を参照してください。
type
String
flex
altText
String
代替テキスト。ユーザーがメッセージを受信した際に、端末の通知やトークリスト、引用メッセージでFlex Messageの代替として表示されます。
最大文字数:400
contents
Object
Flex Messageのコンテナ
Flex Messageの例
# 動作環境
Flex Messageは、すべてのバージョンのLINEでサポートされます。なお、以下の機能は、LINEの特定のバージョンのみサポートしています。
機能 | iOS版LINE Android版LINE | PC版LINE (macOS版、Windows版) |
---|---|---|
11.22.0以上 | 7.7.0以上 | |
13.6.0以上 | 7.17.0以上 |
※1 動画をサポートしていないLINEのバージョンにおいてもコンテンツを適切に表示するには、altContent
プロパティを指定します。このプロパティで指定した画像が動画の代わりに表示されます。
※2 LINEのバージョンがdeca
とhecto
をサポートするバージョンに満たない場合、バブルのサイズはkilo
として表示されます。
# コンテナ
コンテナは、Flex Messageの最上位の構造です。以下のタイプのコンテナを利用できます。
コンテナのJSONデータのサンプルや用途については、『Messaging APIドキュメント』の「Flex Messageの要素」を参照してください。
# バブル
1つのメッセージバブルを構成するコンテナです。ヘッダー、ヒーロー、ボディ、およびフッターの4つのブロックを含めることができます。各ブロックの用途について詳しくは、『Messaging APIドキュメント』の「ブロック」を参照してください。
バブルを定義するJSONデータの最大サイズは、30KBです。
type
String
bubble
size
String
バブルの大きさ。nano
、micro
、deca
、hecto
、kilo
、mega
、giga
のいずれかの値を指定できます。デフォルト値はmega
です。
deca
、hecto
を使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:13.6.0以降
- macOS版とWindows版のLINE:7.17.0以降
LINEのバージョンがdeca
とhecto
をサポートするバージョンに満たない場合、バブルのサイズはkilo
として表示されます。
direction
String
テキストの書字方向と、水平ボックス内でコンポーネントを配置する向き。以下のいずれかの値を指定します。
ltr
:テキストは左横書き、コンポーネントは左から右に配置rtl
:テキストは右横書き、コンポーネントは右から左に配置
デフォルト値はltr
です。
header
Object
ヘッダー。ボックスを指定します。
body
Object
ボディ。ボックスを指定します。
footer
Object
フッター。ボックスを指定します。
styles
Object
各ブロックのスタイル。バブルスタイルを指定します。
action
Object
バブルがタップされたときのアクション。アクションオブジェクトを指定します。
バブルの例
# ブロックのスタイルを定義するオブジェクト
バブル内のブロックのスタイルは、以下の2つのオブジェクトを使って定義します。
バブルスタイルとブロックスタイルの例
# バブルスタイル
header
Object
ヘッダーのスタイル。ブロックスタイルを指定します。
hero
Object
ヒーローのスタイル。ブロックスタイルを指定します。
body
Object
ボディのスタイル。ブロックスタイルを指定します。
footer
Object
フッターのスタイル。ブロックスタイルを指定します。
# ブロックスタイル
backgroundColor
String
ブロックの背景色。16進数カラーコードで設定します。
separator
Boolean
ブロックの上にセパレータを配置する場合はtrue
を指定します。デフォルト値はfalse
です。
separatorColor
String
セパレータの色。16進数カラーコードで設定します。
先頭のブロックの上にはセパレータを配置できません。
# カルーセル
カルーセルは、子要素として1つ以上のバブルを持つコンテナです。カルーセル内のバブルは、横にスクロールして閲覧できます。
カルーセルを定義するJSONデータの最大サイズは、50KBです。
type
String
carousel
contents
Array of objects
このカルーセル内のバブル。最大バブル数:12
1つのカルーセルに、異なる幅(size
プロパティ)のバブルを含めることはできません。バブルの幅は、カルーセルごとに揃えてください。
カルーセルの中で最大の高さのバブルと一致するように、各バブルのボディが伸長します。ただし、ボディがないバブルの大きさは変わりません。
カルーセルの例
# コンポーネント
コンポーネントは、ブロックを構成する要素です。以下のコンポーネントを利用できます。
各コンポーネントのJSONデータのサンプルや用途については、『Messaging APIドキュメント』の「Flex Messageの要素」と「Flex Messageのレイアウト」を参照してください。
# ボックス
ボックスは、水平または垂直のレイアウト方向を定義します。ボックスを含む、他のコンポーネントを含むことができます。
type
String
box
layout
String
このボックス内のコンポーネントを配置する向き。詳しくは、『Messaging APIドキュメント』の「ボックスコンポーネントの向き」を参照してください。
contents
Array of objects
backgroundColor
String
ボックスの背景色。RGBカラーに加えて、アルファチャネル(透明度)も設定できます。16進数カラーコードで設定します。(例:#RRGGBBAA)デフォルト値は#00000000
です。
borderColor
String
ボックスの境界線の色。16進数カラーコードで設定します。
borderWidth
String
ボックスの境界線の太さ。ピクセルまたはnone
、light
、normal
、medium
、semi-bold
、bold
のいずれかの値を指定できます。none
では、境界線は描画されず、それ以外は列挙した順に太くなります。
cornerRadius
String
ボックスの境界線の角を丸くするときの半径。ピクセル、またはnone
、xs
、sm
、md
、lg
、xl
、xxl
のいずれかの値を指定できます。none
では、角は丸くならず、それ以外は列挙した順に半径が大きくなります。デフォルト値はnone
です。
width
String
ボックスの幅。%(親要素の幅を基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの幅」を参照してください。
maxWidth
String
ボックスの最大幅。%(親要素の幅を基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの最大幅」を参照してください。
このプロパティを使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:11.22.0以降
- macOS版とWindows版のLINE:7.7.0以降
height
String
ボックスの高さ。%(親要素の高さを基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの高さ」を参照してください。
maxHeight
String
ボックスの最大高。%(親要素の高さを基準にした割合)またはピクセルを指定します。詳しくは、『Messaging APIドキュメント』の「ボックスの最大高」を参照してください。
このプロパティを使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:11.22.0以降
- macOS版とWindows版のLINE:7.7.0以降
flex
Number
親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。
spacing
String
このボックス内のコンポーネント間の最小スペース。デフォルト値はnone
です。詳しくは、『Messaging APIドキュメント』の「ボックスのspacing
プロパティ」を参照してください。
margin
String
親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmargin
プロパティ」を参照してください。
paddingAll
String
このボックスの境界線と、子要素の間の余白。詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。
paddingTop
String
このボックスの上端の境界線と、子要素の上端の間の余白。詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。
paddingBottom
String
このボックスの下端の境界線と、子要素の下端の間の余白。詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。
paddingStart
String
詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。
paddingEnd
String
詳しくは、『Messaging APIドキュメント』の「ボックスのパディングで子コンポーネントを配置する」を参照してください。
position
String
このボックスを配置する際の基準位置。以下のいずれかの値を指定します。
relative
:直前のボックスを基準にします。absolute
:親要素の左上を基準にします。
デフォルト値はrelative
です。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetTop
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetBottom
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetStart
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetEnd
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
action
Object
タップされたときのアクション。アクションオブジェクトを指定します。
justifyContent
String
親要素の主軸に沿った子要素の配置。親要素が水平ボックスの場合、子要素のflex
プロパティを0に指定したときのみ動作します。詳しくは、『Messaging APIドキュメント』の「余白を使った子コンポーネントの配置」を参照してください。
alignItems
String
親要素の交差軸に沿った子要素の配置。詳しくは、『Messaging APIドキュメント』の「余白を使った子コンポーネントの配置」を参照してください。
background.type
String
背景の種類。以下の値を指定します。
linearGradient
:線形グラデーション。詳しくは、『Messaging APIドキュメント』の「線形グラデーション背景」を参照してください。
background.angle
String
線形グラデーションの勾配の角度。0度以上、360度未満の範囲で、90deg
(90度)や23.5deg
(23.5度)のように整数または小数で角度を指定します。0deg
は下から上、45deg
は左下から右上、90deg
は左から右、180deg
は上から下のように数字が増えると時計回りで角度が変わります。詳しくは、『Messaging APIドキュメント』の「線形グラデーションの角度」を参照してください。
background.type
がlinearGradient
の場合は必須です。
background.startColor
String
グラデーションの開始点の色。#RRGGBB
または#RRGGBBAA
のような16進数カラーコードで設定します。
background.type
がlinearGradient
の場合は必須です。
background.endColor
String
グラデーションの終了点の色。#RRGGBB
または#RRGGBBAA
のような16進数カラーコードで設定します。
background.type
がlinearGradient
の場合は必須です。
background.centerColor
String
グラデーションの中間色。#RRGGBB
または#RRGGBBAA
のような16進数カラーコードで設定します。background.centerColor
を指定すると3色のグラデーションになります。詳しくは、『Messaging APIドキュメント』の「グラデーションの中間色」を参照してください。
background.centerPosition
String
中間色の位置。開始点の0%
から、終了点の100%
の範囲で整数または小数を指定します。デフォルト値は50%
です。詳しくは、『Messaging APIドキュメント』の「グラデーションの中間色」を参照してください。
ボックスの例
# ボタン
ボタンを描画するコンポーネントです。ユーザーが、ボタンをタップしたときに実行される、アクションを指定できます。
type
String
button
action
Object
タップされたときのアクション。アクションオブジェクトを指定します。
flex
Number
親要素内での、このコンポーネントの幅または高さの比率。水平ボックス内のコンポーネントでは、flex
プロパティのデフォルト値は1
です。垂直ボックス内のコンポーネントでは、flex
プロパティのデフォルト値は0
です。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。
margin
String
親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmargin
プロパティ」を参照してください。
position
String
offsetTop
、offsetBottom
、offsetStart
、offsetEnd
の基準。以下のいずれかの値を指定します。
relative
:直前のボックスを基準にします。absolute
:親要素の左上を基準にします。
デフォルト値はrelative
です。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetTop
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetBottom
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetStart
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetEnd
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
height
String
ボタンの高さ。sm
またはmd
のいずれかの値を指定できます。デフォルト値はmd
です。
style
String
ボタンの表示形式。以下のいずれかの値を指定します。
primary
:濃色のボタン向けのスタイルsecondary
:淡色のボタン向けのスタイルlink
:HTMLのリンクのスタイル。
デフォルト値はlink
です。
color
String
style
プロパティがlink
の場合は文字の色。style
プロパティがprimary
またはsecondary
の場合は背景色です。16進数カラーコードで設定します。
gravity
String
垂直方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキスト、画像、ボタンを垂直方向に整列させる」を参照してください。
adjustMode
String
テキストのフォントサイズを調整する方式。以下の値を指定します。
shrink-to-fit
:コンポーネントの幅に合わせて自動縮小されます。このプロパティはベストエフォートで機能しますので、プラットフォームによって動作が異なる、あるいは動作しないことがあります。詳しくは、『Messaging APIドキュメント』の「フォントサイズの自動縮小」を参照してください。
scaling
Boolean
true
を指定すると、LINEアプリのフォントサイズ設定に応じて、テキストのフォントサイズが自動的に拡大縮小されます。デフォルト値はfalse
です。詳しくは、『Messaging APIドキュメント』の「フォントサイズ設定に応じたサイズへの拡大縮小」を参照してください。
このプロパティを使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:13.6.0以降
- macOS版とWindows版のLINE:7.17.0以降
ボタンの例
# 画像
画像を描画するコンポーネントです。
type
String
image
url
String
画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大画像サイズ:1024 x 1024ピクセル
最大ファイルサイズ:10MB(animated
プロパティがtrue
の場合は300KB)
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
メッセージの表示が遅延することを防ぐために、個々の画像ファイルサイズを小さくしてください(1MB以下推奨)。
flex
Number
親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。
margin
String
親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmargin
プロパティ」を参照してください。
position
String
offsetTop
、offsetBottom
、offsetStart
、offsetEnd
の基準。以下のいずれかの値を指定します。
relative
:直前のボックスを基準にします。absolute
:親要素の左上を基準にします。
デフォルト値はrelative
です。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetTop
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetBottom
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetStart
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetEnd
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
align
String
水平方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキストや画像を水平方向に整列させる」を参照してください。
gravity
String
垂直方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキスト、画像、ボタンを垂直方向に整列させる」を参照してください。
size
String
画像の幅の最大サイズ。デフォルト値はmd
です。詳しくは、『Messaging APIドキュメント』の「画像のサイズ」を参照してください。
aspectRatio
String
画像のアスペクト比。{幅}:{高さ}
の形式で指定します。{幅}
と{高さ}
は、それぞれ1~100000の値で入力します。ただし、{高さ}
には{幅}
の3倍を超える値は指定できません。デフォルト値は1:1
です。
aspectMode
String
画像のアスペクト比とaspectRatio
プロパティで指定されるアスペクト比が一致しない場合の、画像の表示方式。詳しくは、「描画領域について」を参照してください。
backgroundColor
String
画像の背景色。16進数カラーコードで設定します。
action
Object
タップされたときのアクション。アクションオブジェクトを指定します。
animated
Boolean
true
を指定すると画像(APNG)のアニメーションを再生します。メッセージ全体で10枚の画像までtrue
を指定できます。上限を超えて指定した場合、メッセージは送信できません。デフォルト値はfalse
です。データサイズが300KBを超える場合は再生されません。
アニメーションの画像はAPNG作成ツールを使用して作成してください。APNGの作成方法は、アニメーションスタンプの作成方法を参考にしてください。詳しくは、LINE Creators Marketにあるアニメーションスタンプの制作ガイドライン (opens new window)を参照してください。
「画像は表示されるがアニメーションが再生されない」というときは、以下を確認してください。
animated
プロパティの値をtrue
にしているか- 画像のデータサイズが300KB以下か
またメッセージを受信したLINEアプリの設定に起因して、アニメーションが再生されない場合もあります。併せて以下も確認してください。
- LINEアプリの設定で
GIF自動再生
がオンになっているか
アニメーションはAPNGのacTL
チャンクのnum_plays
フィールドで指定した回数分、ループ再生されます。0を指定することで無限にループ再生も可能です。
画像の例
# 描画領域について
size
プロパティで画像の最大の幅を指定し、aspectRatio
プロパティで画像のアスペクト比(幅:高さの比率)を指定します。size
プロパティとaspectRatio
プロパティで決定される矩形の領域を、描画領域と呼びます。この描画領域に画像が表示されます。
flex
プロパティによって算出されたコンポーネントの幅が、size
プロパティで指定された画像の幅よりも小さい場合、描画領域の幅はコンポーネントの幅に縮小されます。- 画像のアスペクト比と
aspectRatio
プロパティで指定されるアスペクト比が一致しない場合、aspectMode
プロパティに基づいて画像が表示されます。デフォルト値はfit
です。aspectMode
がcover
の場合:描画領域全体に画像を表示します。描画領域に収まらない部分は切り詰められます。aspectMode
がfit
の場合:描画領域に画像全体を表示します。縦長の画像では左右に、横長の画像では上下に背景が表示されます。
# 動画
動画を描画するコンポーネントです。
動画を使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:11.22.0以降
- macOS版とWindows版のLINE:7.7.0以降
LINEのバージョンが動画をサポートするバージョンに満たない場合、動画のaltContent
プロパティに指定したコンポーネントが代替コンテンツとして表示されます。
動画を含むメッセージの送信に成功したとしても、ユーザーの端末上で動画を正しく再生できない場合があります。詳しくは、FAQの「メッセージとして送信した動画が再生できないのはなぜですか?」を参照してください。
一定以上に縦長・横長の動画を送信した場合、一部の環境では動画の一部が欠けて表示される場合があります。
また、url
プロパティで指定する動画のアスペクト比と、以下の2つのアスペクト比は一致させてください。アスペクト比が異なると、予期せぬレイアウトになることがあります。
aspectRatio
プロパティで指定するアスペクト比previewUrl
プロパティで指定するプレビュー画像のアスペクト比
動画コンポーネントを使うには、以下の条件をすべて満たす必要があります。
- 動画コンポーネントをヒーローのブロック直下に指定する。
- バブルの
size
プロパティにkilo
mega
giga
のいずれかを指定する。 - バブルがカルーセルの子要素ではない。
type
String
video
url
String
動画ファイルのURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
動画フォーマット:mp4
最大ファイルサイズ:200MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
previewUrl
String
プレビュー画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大ファイルサイズ:1MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
aspectRatio
String
動画のアスペクト比。{幅}:{高さ}
の形式で指定します。{幅}
と{高さ}
は、それぞれ1~100000の値で入力します。ただし、{高さ}
には{幅}
の3倍を超える値は指定できません。デフォルト値は1:1
です。
動画の例
# アイコン
隣接するテキストを装飾するために、アイコンを描画するコンポーネントです。このコンポーネントは、ベースラインボックス内でのみ使用できます。
type
String
icon
url
String
画像のURL(最大文字数:2000)
プロトコル:HTTPS(TLS 1.2以降)
画像フォーマット:JPEGまたはPNG
最大画像サイズ:1024 x 1024ピクセル
最大ファイルサイズ:1MB
URLはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
margin
String
親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmargin
プロパティ」を参照してください。
position
String
offsetTop
、offsetBottom
、offsetStart
、offsetEnd
の基準。以下のいずれかの値を指定します。
relative
:直前のボックスを基準にします。absolute
:親要素の左上を基準にします。
デフォルト値はrelative
です。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetTop
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetBottom
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetStart
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetEnd
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
size
String
アイコンの幅の最大サイズ。デフォルト値はmd
です。詳しくは、『Messaging APIドキュメント』の「アイコン、テキスト、スパンのサイズ」を参照してください。
scaling
Boolean
true
を指定すると、LINEアプリのフォントサイズ設定に応じて、アイコンが自動的に拡大縮小されます。デフォルト値はfalse
です。詳しくは、『Messaging APIドキュメント』の「フォントサイズ設定に応じたサイズへの拡大縮小」を参照してください。
このプロパティを使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:13.6.0以降
- macOS版とWindows版のLINE:7.17.0以降
aspectRatio
String
アイコンのアスペクト比。{幅}:{高さ}
の形式で指定します。{幅}
と{高さ}
は、それぞれ1~100000の値で入力します。ただし、{高さ}
には{幅}
の3倍を超える値は指定できません。デフォルト値は1:1
です。
アイコンのflex
プロパティの値は、0
に固定されます。
アイコンの例
# テキスト
文字列を描画するコンポーネントです。色、サイズ、および太さを指定できます。
type
String
text
text
String
テキスト。text
プロパティまたはcontents
プロパティのいずれかを必ず設定してください。contents
プロパティを設定すると、text
は無視されます。
contents
Array of objects
スパンの配列。text
プロパティまたはcontents
プロパティのいずれかを必ず設定してください。contents
プロパティを設定すると、text
は無視されます。
adjustMode
String
テキストのフォントサイズを調整する方式。以下の値を指定します。
shrink-to-fit
:コンポーネントの幅に合わせて自動縮小されます。このプロパティはベストエフォートで機能しますので、プラットフォームによって動作が異なる、あるいは動作しないことがあります。詳しくは、『Messaging APIドキュメント』の「フォントサイズの自動縮小」を参照してください。
flex
Number
親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。
margin
String
親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmargin
プロパティ」を参照してください。
position
String
offsetTop
、offsetBottom
、offsetStart
、offsetEnd
の基準。以下のいずれかの値を指定します。
relative
:直前のボックスを基準にします。absolute
:親要素の左上を基準にします。
デフォルト値はrelative
です。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetTop
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetBottom
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetStart
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
offsetEnd
String
オフセット。詳しくは、『Messaging APIドキュメント』の「オフセット」を参照してください。
size
String
フォントサイズ。デフォルト値はmd
です。詳しくは、『Messaging APIドキュメント』の「アイコン、テキスト、スパンのサイズ」を参照してください。
scaling
Boolean
true
を指定すると、LINEアプリのフォントサイズ設定に応じて、テキストのフォントサイズが自動的に拡大縮小されます。デフォルト値はfalse
です。詳しくは、『Messaging APIドキュメント』の「フォントサイズ設定に応じたサイズへの拡大縮小」を参照してください。
このプロパティがtrue
の場合、contents
プロパティで指定したスパンのテキストも、フォントサイズが自動的に拡大縮小されます。
このプロパティを使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:13.6.0以降
- macOS版とWindows版のLINE:7.17.0以降
align
String
水平方向の位置合わせ方式。詳しくは、『Messaging APIドキュメント』の「テキストや画像を水平方向に整列させる」を参照してください。
gravity
String
垂直方向の位置合わせ方式。デフォルト値はtop
です。詳しくは、『Messaging APIドキュメント』の「テキスト、画像、ボタンを垂直方向に整列させる」を参照してください。
wrap
Boolean
true
を指定するとテキストを折り返します。デフォルト値はfalse
です。true
に設定した場合、改行文字(\n
)を使って改行できます。詳しくは、『Messaging APIドキュメント』の「テキストを折り返す」を参照してください。
lineSpacing
String
折り返したテキスト内の行間。0より大きい整数または小数をピクセルで指定します。開始行の上部と最終行の下部には適用されません。詳しくは、『Messaging APIドキュメント』の「テキスト内の行間を広げる」を参照してください。
このプロパティを使用できるLINEのバージョンは以下のとおりです。
- iOS版とAndroid版のLINE:11.22.0以降
- macOS版とWindows版のLINE:7.7.0以降
maxLines
Number
最大行数。テキストがこの行数に収まらない場合は、最終行の末尾に省略記号(…)が表示されます。0
ではすべてのテキストが表示されます。デフォルト値は0
です。
weight
String
フォントの太さ。regular
、bold
のいずれかの値を指定できます。bold
を指定すると太字になります。デフォルト値はregular
です。
color
String
フォントの色。16進数カラーコードで設定します。
action
Object
タップされたときのアクション。アクションオブジェクトを指定します。
style
String
テキストのスタイル。以下のいずれかの値を指定します。
normal
:標準italic
:斜体デフォルト
値はnormal
です。
decoration
String
テキストの装飾。以下のいずれかの値を指定します。
none
:装飾なしunderline
:下線line-through
:取り消し線
デフォルト値はnone
です。
テキストの例
# スパン
スタイルが異なる複数の文字列を描画するコンポーネントです。色、サイズ、太さ、および装飾を指定できます。スパンは、テキストのcontents
プロパティに設定します。
type
String
span
text
String
テキスト。親のテキストのwrap
プロパティをtrue
に設定した場合は、改行文字(\n
)を使って改行できます。
color
String
フォントの色。16進数カラーコードで設定します。
size
String
フォントサイズ。詳しくは、『Messaging APIドキュメント』の「アイコン、テキスト、スパンのサイズ」を参照してください。
weight
String
フォントの太さ。regular
、bold
のいずれかの値を指定できます。bold
を指定すると太字になります。デフォルト値はregular
です。
style
String
テキストのスタイル。以下のいずれかの値を指定します。
normal
:標準italic
:斜体
デフォルト値はnormal
です。
decoration
String
テキストの装飾。以下のいずれかの値を指定します。
none
:装飾なしunderline
:下線line-through
:取り消し線
デフォルト値はnone
です。
テキストのdecoration
プロパティで設定した装飾は、スパンのdecoration
プロパティで上書きできません。
スパンの例
# セパレータ
ボックス内に分割線を描画するコンポーネントです。水平ボックスに含めた場合は垂直線、垂直ボックスに含めた場合は水平線が描画されます。
type
String
separator
margin
String
親要素内での、このコンポーネントの前に挿入する余白の最小サイズ。詳しくは、『Messaging APIドキュメント』の「コンポーネントのmargin
プロパティ」を参照してください。
color
String
セパレータの色。16進数カラーコードで設定します。
セパレータの例
# フィラー
スペースを作るには、フィラーの代わりに各コンポーネントのプロパティを使用してください。詳しくは、『Messaging APIドキュメント』の「コンポーネントの位置」を参照してください。
スペースを作るためのコンポーネントです。ボックス内のコンポーネントの間、前、または後にスペースを入れることができます。
type
String
filler
flex
Number
親要素内での、このコンポーネントの幅または高さの比率。詳しくは、『Messaging APIドキュメント』の「コンポーネントのサイズ」を参照してください。
フィラーでは親要素のspacing
プロパティが無視されます。
フィラーの例
# アクションオブジェクト
ユーザーがメッセージ内のボタンまたは画像をタップしたときに、ボットが実行できるアクションのタイプです。
- ポストバックアクション
- メッセージアクション
- URIアクション
- 日時選択アクション
- カメラアクション
- カメラロールアクション
- 位置情報アクション
- リッチメニュー切替アクション
- クリップボードアクション
# ポストバックアクション
このアクションが関連づけられたコントロールがタップされると、data
プロパティに指定された文字列を含むポストバックイベントが、Webhookを介して返されます。
type
String
postback
label
String
アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。
data
String
Webhookを介して、ポストバックイベントのpostback.data
プロパティで返される文字列
最大文字数:300
displayText
String
アクションの実行時に、ユーザーのメッセージとしてLINEのトーク画面に表示されるテキスト。
最大文字数:300
displayText
プロパティとtext
プロパティは、同時に設定できません。
text
String
【廃止予定】アクションの実行時に、ユーザーのメッセージとしてLINEのトーク画面に表示されるテキスト。Webhookを介してサーバーに返されます。クイックリプライボタンでは使用しないでください。
最大文字数:300
displayText
プロパティとtext
プロパティは、同時に設定できません。
inputOption
String
アクションに応じた、リッチメニューなどの表示方法。以下のいずれかの値を指定します。
closeRichMenu
:リッチメニューを閉じるopenRichMenu
:リッチメニューを開くopenKeyboard
:キーボードを開くopenVoice
:ボイスメッセージ入力モードを開く
iOS版LINEまたはAndroid版LINEのバージョン12.6.0
以降で動作します。
fillInText
String
キーボードを開いたときに、入力欄にあらかじめ入力しておく文字列。inputOption
がopenKeyboard
の場合にのみ有効です。文字列は、改行文字(\n
)により改行できます。
最大文字数:300
iOS版LINEまたはAndroid版LINEのバージョン12.6.0
以降で動作します。
# ラベルの仕様
以下のアクションにおけるlabel
プロパティは、アクションを設定するオブジェクトごとに、仕様が異なります。
上記のアクションにおけるラベルの仕様は次のとおりです。なお、上記以外のアクションにおけるラベルの仕様については、各アクションの仕様を参照してください。
オブジェクト | 必須 | 最大文字数 | |
---|---|---|---|
テンプレートメッセージ | 画像カルーセル | 任意 | 12 |
画像カルーセル以外 | 必須 | 20 | |
リッチメニュー *1 | 任意 | 20 | |
クイックリプライボタン | 必須 | 20 | |
Flex Message | ボタン | 必須 | 40 |
ボタン以外 *2 | 任意 | 40 |
※1 ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
※2 ラベルを指定しても表示されません。
ポストバックアクションオブジェクトの例
# メッセージアクション
このアクションが関連づけられたコントロールがタップされると、text
プロパティの文字列がユーザーからのメッセージとして送信されます。
type
String
message
label
String
アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。
text
String
アクションの実行時に送信されるテキスト
最大文字数:300
メッセージアクションオブジェクトの例
# URIアクション
このアクションが関連づけられたコントロールがタップされると、LINE内ブラウザでuri
プロパティのURIが開きます。
type
String
uri
label
String
アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。
uri
String
アクションの実行時に開かれるURI(最大文字数:1000)
使用できるスキームは、http
、https
、line
、およびtel
です。LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。
URIはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
altUri.desktop
String
macOS版とWindows版のLINEでアクションを実行したときに開かれるURI(最大文字数:1000)
altUri.desktop
を指定した場合は、macOS版とWindows版のLINEではuri
が無視されます。
使用できるスキームは、http
、https
、line
、およびtel
です。LINE URLスキームについて詳しくは、「LINE URLスキームでLINEの機能を使う」を参照してください。
URIはUTF-8を用いてパーセントエンコードしてください。詳しくは、「リクエストボディのプロパティに指定するURLのエンコードについて」を参照してください。
altUri.desktop
は、Flex MessageにURIアクションを関連付けた場合にのみ有効です。クイックリプライでは動作しません。
URIアクションオブジェクトの例
# 日時選択アクション
このアクションが関連づけられたコントロールがタップされると、日時選択ダイアログでユーザーが選択した日時を含むポストバックイベントが、Webhookを介して返されます。日時選択アクションはタイムゾーンの違いに対応していません。
type
String
datetimepicker
label
String
アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。
data
String
Webhookを介して、ポストバックイベントのpostback.data
プロパティで返される文字列
最大文字数:300
mode
String
アクションモード
date
:日付を選択します。
time
:時刻を選択します。
datetime
:日付と日時を選択します。
initial
String
日付または時刻の初期値
max
String
選択可能な日付または時刻の最大値。min
の値より大きい必要があります。
min
String
選択可能な日付または時刻の最小値。max
の値より小さい必要があります。
日時選択アクションオブジェクトの例
# 日付と日時の形式
initial
、max
、およびmin
の値の日付と日時の形式は以下のとおりです。full-date
、time-hour
、およびtime-minute
の形式は、RFC3339 (opens new window)プロトコルで定義されています。
モード | 形式 | 例 |
---|---|---|
date | full-date 最大値:2100-12-31 最小値:1900-01-01 | 2017-06-18 |
time | time-hour :time-minute 最大値:23:59 最小値:00:00 | 00:00 06:15 23:59 |
datetime | full-date Ttime-hour :time-minute またはfull-date ttime-hour :time-minute 最大値:2100-12-31T23:59 最小値:1900-01-01T00:00 | 2017-06-18T06:15 2017-06-18t06:15 |
# カメラアクション
クイックリプライボタンにのみ設定できるアクションです。このアクションが関連づけられたボタンがタップされると、LINE内のカメラが起動します。
type
String
camera
label
String
アクションのラベル
最大文字数:20
カメラアクションオブジェクトの例
# カメラロールアクション
クイックリプライボタンにのみ設定できるアクションです。このアクションが関連づけられたボタンがタップされると、LINEのカメラロール画面が開きます。
type
String
cameraRoll
label
String
アクションのラベル
最大文字数:20
カメラロールアクションオブジェクトの例
# 位置情報アクション
クイックリプライボタンにのみ設定できるアクションです。このアクションが関連づけられたボタンがタップされると、LINEの位置情報画面が開きます。
type
String
location
label
String
アクションのラベル
最大文字数:20
位置情報アクションオブジェクトの例
# リッチメニュー切替アクション
リッチメニューにのみ設定できるアクションです。Flex Messageやクイックリプライでは利用できません。このアクションが関連づけられたリッチメニューがタップされると、リッチメニューの切替が行われ、ユーザーが選択したリッチメニューエイリアスIDを含むポストバックイベントが、Webhookを介して返されます。詳しくは、『Messaging APIドキュメント』の「リッチメニューでタブ切り替えを行う」を参照してください。
type
String
richmenuswitch
label
String
アクションのラベル。リッチメニューでは省略可能です。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。
- 最大文字数:20
richMenuAliasId
String
切替先のリッチメニューエイリアスID。
data
String
Webhookを介して、ポストバックイベントのpostback.data
プロパティで返される文字列
- 最大文字数:300
リッチメニュー切替アクションオブジェクトの例
# クリップボードアクション
ユーザーがこのアクションが関連づけられたコントロールをタップすると、clipboardText
プロパティに指定されたテキストが、端末のクリップボードにコピーされます。
iOS版LINEまたはAndroid版LINEのバージョン14.0.0
以降で動作します。
type
String
clipboard
label
String
アクションのラベル。アクションを設定するオブジェクトごとに、仕様が異なります。詳しくは、「ラベルの仕様」を参照してください。
clipboardText
String
クリップボードにコピーされる文字列
- 最大文字数:1000
クリップボードアクションオブジェクトの例
# リッチメニューの構造
リッチメニューは以下のどちらかのオブジェクトで表されます。
- リッチメニューIDを含まないリッチメニューオブジェクト。リッチメニューの作成時にこのオブジェクトを使用します。
- リッチメニューIDを含むリッチメニューレスポンスオブジェクト。リッチメニューの取得時またはリッチメニューの配列の取得時にこのオブジェクトが返されます。
これらのオブジェクトは領域オブジェクトとアクションオブジェクトから構成されます。
# リッチメニューオブジェクト
リッチメニューオブジェクトが有効かを確認したい場合、リッチメニューオブジェクトを検証するエンドポイントで検証できます。
size
Object
size
オブジェクト。トークルームに表示されるリッチメニューの幅と高さを表します。使用できるリッチメニューの画像の幅サイズは800px以上2500px以下で、高さサイズは250px以上です。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。
selected
Boolean
デフォルトでリッチメニューを表示する場合はtrue
です。それ以外はfalse
です。
name
String
リッチメニューの名前。リッチメニューの管理に役立ちます。ユーザーには表示されません。
最大文字数:300
chatBarText
String
トークルームメニューに表示されるテキストです。
最大文字数:14
areas
Array
タップ領域の座標とサイズを定義する、領域オブジェクトの配列。
最大領域オブジェクト数:20
リッチメニューオブジェクトの例
# リッチメニューレスポンスオブジェクト
richMenuId
String
リッチメニューのID
size
Object
size
オブジェクト。トークルームに表示されるリッチメニューの幅と高さを表します。使用できるリッチメニューの画像の幅サイズは800px以上2500px以下で、高さサイズは250px以上です。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。
selected
Boolean
デフォルトでリッチメニューを表示する場合はtrue
です。それ以外はfalse
です。
name
String
リッチメニューの名前。リッチメニューの管理に役立ちます。ユーザーには表示されません。
最大文字数:300
chatBarText
String
トークルームメニューに表示されるテキストです。
最大文字数:14
areas
Array
タップ領域の座標とサイズを定義する、領域オブジェクトの配列。
最大領域オブジェクト数:20
リッチメニューレスポンスオブジェクトの例
# size
オブジェクト
width
Number
リッチメニューの幅。800
以上、2500
以下の値を指定します。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。
height
Number
リッチメニューの高さ。250
以上の値を指定します。ただし、アスペクト比(幅÷高さ)が1.45以上になるようにします。
sizeオブジェクトの例
# 領域オブジェクト
bounds
Object
領域の境界をピクセルで表すオブジェクト。「bounds
オブジェクト」を参照してください。
action
Object
領域がタップされたときに実行されるアクション。「アクションオブジェクト」を参照してください。
領域オブジェクトの例
# bounds
オブジェクト
x
Number
画像の左端を基準としたタップ領域の位置(横方向の相対位置)。0
以上の値を設定してください。
y
Number
画像の上端を基準としたタップ領域の位置(縦方向の相対位置)。0
以上の値を設定してください。
width
Number
タップ領域の幅
height
Number
タップ領域の高さ
boundsオブジェクトの例