- ドキュメント
- Messaging API
- APIリファレンス
APIリファレンス
共通仕様
レート制限
APIごとに実行できるリクエスト回数およびMessaging APIによって送信されるメッセージの受信者数の制限は以下のとおりです。レート制限はご利用のプランによって異なります。お住いの地域で利用できるLINE@プランについて詳しくは、LINE@ウェブサイトを参照してください。
プラン | APIリクエスト回数の制限 | メッセージ受信者数の制限 |
---|---|---|
Developer Trial | APIごとに1,000/分 | ボットごとに20,000/分 |
その他のプラン | APIごとに10,000/分 | ボットごとに200,000/分 |
ステータスコード
Messaging APIからは以下のステータスコードが返されます。
ステータスコード | 説明 |
---|---|
200 OK | リクエストが成功しました。 |
400 Bad Request | リクエストに問題があります。 |
401 Unauthorized | 有効なチャネルアクセストークンが指定されていません。 |
403 Forbidden | リソースにアクセスする権限がありません。ご契約中のプランやアカウントに付与されている権限を確認してください。 |
429 Too Many Requests | APIコールのレート制限を超過しました。 |
500 Internal Server Error | 内部サーバーのエラーです。 |
レスポンスヘッダー
Messaging APIのレスポンスには以下のHTTPヘッダーが含まれます。
レスポンスヘッダー | 説明 |
---|---|
X-Line-Request-Id | 各リクエストに発行されるID |
エラーレスポンスの例
{
"message":"The request body has 2 error(s)",
"details":[
{
"message":"May not be empty",
"property":"messages[0].text"
},
{
"message":"Must be one of the following values: [text, image, video, audio, location, sticker, template, imagemap]",
"property":"messages[1].type"
}
]
}
エラーレスポンス
エラー発生時は、以下のJSONデータを含むレスポンスボディが返されます。
プロパティ | タイプ | 説明 |
---|---|---|
message | String | エラー情報を含むメッセージ。詳しくは、「エラーメッセージ」を参照してください。 |
details[].message | String | エラーの詳細。特定の状況では返されません。 |
details[].property | String | エラーの発生箇所。特定の状況では返されません。 |
エラーメッセージ
エラーのJSONレスポンスのmessage
プロパティに含まれる、主なエラーメッセージは以下のとおりです。
メッセージ | 説明 |
---|---|
The request body has X error(s) | リクエストボディのJSONデータにエラーがありました。Xの部分にエラーの数が表示されます。詳細はdetails[].message およびdetails[].property プロパティに含まれます。 |
Invalid reply token | 応答メッセージで使用された応答トークンが無効です。 |
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が存在しない場合などにこのエラーが発生します。 |
Webhook
友だち追加やメッセージの送信のようなイベントがトリガーされると、webhook URLにHTTPS POSTリクエストが送信されます。Webhook URLはチャネルに対してコンソールで設定します。
リクエストはボットアプリのサーバーで受信および処理されます。
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
X-Line-Signature | 署名の検証に使う署名 |
リクエストボディ
リクエストボディは、webhookイベントオブジェクトの配列を含むJSONオブジェクトです。
プロパティ | タイプ | 説明 |
---|---|---|
events | webhookイベントオブジェクトの配列 | イベントの情報 |
レスポンス
ボットアプリのサーバーにwebhookから送信されるHTTP POSTリクエストには、ステータスコード200
を返す必要があります。
署名検証の例
# Click on the language tabs for examples of signature validation
Webhookイベントオブジェクトの例
{
"events": [
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "text",
"text": "Hello, world"
}
},
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "follow",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
}
}
]
}
共通プロパティ
以下のプロパティはすべてのwebhookイベントオブジェクトに含まれます。
プロパティ | タイプ | 説明 |
---|---|---|
type | String | イベントのタイプを表す識別子 |
timestamp | Number | イベントの発生時刻(ミリ秒) |
source | Object | イベントの送信元情報を含むユーザー、グループ、またはトークルームオブジェクト |
送信元ユーザーの例
"source": {
"type": "user",
"userId": "U4af4980629..."
}
送信元グループの例
"source": {
"type": "group",
"groupId": "Ca56f94637c...",
"userId": "U4af4980629..."
}
送信元グループ
プロパティ | タイプ | 説明 |
---|---|---|
type | String | group |
groupId | String | 送信元グループのID |
userId | String | 送信元ユーザーのID。メッセージイベントにのみ含まれます。ユーザーが公式アカウントの利用条件に同意していない場合は含まれません。 |
送信元トークルームの例
"source": {
"type": "room",
"roomId": "Ra8dbf4673c...",
"userId": "U4af4980629..."
}
送信元トークルーム
プロパティ | タイプ | 説明 |
---|---|---|
type | String | room |
roomId | String | 送信元トークルームのID |
userId | String | 送信元ユーザーのID。メッセージイベントにのみ含まれます。ユーザーが公式アカウントの利用条件に同意していない場合は含まれません。 |
メッセージイベント
送信されたメッセージを含むwebhookイベントオブジェクトです。
メッセージのタイプに対応するメッセージオブジェクトが、message
プロパティに含まれます。メッセージイベントには応答できます。
プロパティ | タイプ | 説明 |
---|---|---|
type | String | message |
replyToken | String | イベントへの応答に使用するトークン |
message | Object | メッセージの内容を含むオブジェクト。メッセージには以下のタイプがあります。 |
テキストメッセージの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "text",
"text": "Hello, world!"
}
}
テキストメッセージ
送信元から送られたテキストを含むメッセージオブジェクトです。
プロパティ | タイプ | 説明 |
---|---|---|
id | String | メッセージID |
type | String | text |
text | String | メッセージのテキスト |
画像メッセージの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "image"
}
}
画像メッセージ
送信元から送られた画像を含むメッセージオブジェクトです。バイナリの画像データはcontent
エンドポイントから取得できます。
プロパティ | タイプ | 説明 |
---|---|---|
id | String | メッセージID |
type | String | image |
動画メッセージの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "video"
}
}
動画メッセージ
送信元から送られた動画を含むメッセージオブジェクトです。バイナリの動画データはcontent
エンドポイントから取得できます。
プロパティ | タイプ | 説明 |
---|---|---|
id | String | メッセージID |
type | String | video |
音声メッセージの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "audio"
}
}
音声メッセージ
送信元から送られた音声を含むメッセージオブジェクトです。バイナリの音声データはcontent
エンドポイントから取得できます。
プロパティ | タイプ | 説明 |
---|---|---|
id | String | メッセージID |
type | String | audio |
ファイルメッセージの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "file",
"fileName": "file.txt",
"fileSize": 2138
}
}
ファイルメッセージ
送信元から送られたファイルを含むメッセージオブジェクトです。バイナリデータはcontent
エンドポイントから取得できます。
プロパティ | タイプ | 説明 |
---|---|---|
id | String | メッセージID |
type | String | file |
fileName | String | ファイル名 |
fileSize | String | ファイルサイズ(バイト) |
位置情報メッセージの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "location",
"title": "my location",
"address": "〒150-0002 東京都渋谷区渋谷2丁目21−1",
"latitude": 35.65910807942215,
"longitude": 139.70372892916203
}
}
位置情報メッセージ
送信元から送られた位置情報データを含むメッセージオブジェクトです。
プロパティ | タイプ | 説明 |
---|---|---|
id | String | メッセージID |
type | String | location |
title | String | タイトル |
address | String | 住所 |
latitude | Decimal | 緯度 |
longitude | Decimal | 経度 |
スタンプメッセージの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "message",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"message": {
"id": "325708",
"type": "sticker",
"packageId": "1",
"stickerId": "1"
}
}
スタンプメッセージ
送信元から送られたスタンプデータを含むメッセージオブジェクトです。 LINEの基本的なスタンプとスタンプIDについては、スタンプリストを参照してください。
プロパティ | タイプ | 説明 |
---|---|---|
id | String | メッセージID |
type | String | sticker |
packageId | String | パッケージID |
stickerId | String | スタンプID |
フォローイベントの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "follow",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
}
}
フォロー解除イベントの例
{
"type": "unfollow",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
}
}
参加イベントの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "join",
"timestamp": 1462629479859,
"source": {
"type": "group",
"groupId": "C4af4980629..."
}
}
退出イベントの例
{
"type": "leave",
"timestamp": 1462629479859,
"source": {
"type": "group",
"groupId": "C4af4980629..."
}
}
退出イベント
ユーザーがグループからボットを削除したことを示すイベントです。
退出イベントは以下の状況では生成されません。
- ユーザーがトークルームからボットを削除したとき。
- ボットがグループから退出またはトークルームから退出するエンドポイントにリクエストを送信して退出したとき。
プロパティ | タイプ | 説明 |
---|---|---|
type | String | leave |
ポストバックイベントの例
{
"type":"postback",
"replyToken":"b60d432864f44d079f6d8efe86cf404b",
"source":{
"userId":"U91eeaf62d...",
"type":"user"
},
"timestamp":1513669370317,
"postback":{
"data":"storeId=12345",
"params":{
"datetime":"2017-12-25T01:00"
}
}
}
ポストバックイベント
ユーザーが、テンプレートメッセージに関連づけられた、ポストバックを開始するアクションを実行したことを示すイベントオブジェクトです。ポストバックイベントには応答できます。
プロパティ | タイプ | 説明 |
---|---|---|
type | String | postback |
replyToken | String | このイベントへの応答に使用するトークン |
postback.data | String | ポストバックデータ |
postback.params | Object |
日時選択アクションを介してユーザーが選択した日時を含むJSONオブジェクト。 日時選択アクションによるポストバックアクションの場合にのみ返されます。 |
postback.paramsオブジェクトの例
{
"datetime":"2017-12-25T01:00"
}
postback.params
オブジェクト
日時選択アクションを介してユーザーが選択した日時を含むオブジェクトです。full-date
、time-hour
、およびtime-minute
の形式は、RFC3339プロトコルで定義されています。
プロパティ | 形式 | 説明 |
---|---|---|
date | full-date | ユーザーが選択した日付。date モードの場合にのみ含まれます。 |
time | time-hour ":" time-minute | ユーザーが選択した時刻。time モードの場合にのみ含まれます。 |
datetime | full-date "T" time-hour ":" time-minute | ユーザーが選択した日付および時刻。datetime モードの場合にのみ含まれます。 |
ビーコンイベントの例
{
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"type": "beacon",
"timestamp": 1462629479859,
"source": {
"type": "user",
"userId": "U4af4980629..."
},
"beacon": {
"hwid": "d41d8cd98f",
"type": "enter"
}
}
ビーコンイベント
LINE Beaconデバイスの受信圏をユーザーが出入りしたことを示すイベントオブジェクトです。ビーコンイベントには応答できます。
プロパティ | タイプ | 説明 |
---|---|---|
type | String | beacon |
replyToken | String | このイベントへの応答に使用するトークン |
beacon.hwid | String | 検出されたビーコンのハードウェアID |
beacon.type | String | ビーコンイベントのタイプ。「ビーコンイベントのタイプ」を参照してください。 |
beacon.dm | String | 検出されたビーコンのデバイスメッセージ。このメッセージは、ボットへの通知を目的としてビーコンにより生成されるデータです。Device messageプロパティをサポートするデバイスからのwebhookにのみ含まれます。 詳しくは、LINE Simple Beaconの仕様を参照してください。 |
ビーコンイベントのタイプ
beacon.type | 説明 |
---|---|
enter |
ユーザーがビーコンの受信圏内に入りました。 |
leave |
【このleave イベントの利用は非推奨です。】ユーザーがビーコンの受信圏外に出ました。注: leave イベントは企業ユーザー様にはご利用いただけません。この機能のご利用をご希望の企業ユーザー様は、LINEの貴社担当者までお問い合わせください。 |
banner |
ユーザーがビーコンバナーをタップしました。 |
OAuth
リクエストの例
curl -v -X POST https://api.line.me/v2/oauth/accessToken \
-H "Content-Type:application/x-www-form-urlencoded" \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={channel ID}' \
--data-urlencode 'client_secret={channel secret}'
チャネルアクセストークンを発行する
注:この方法では、30日間有効な短期のチャネルアクセストークンが発行されます。長期のチャネルアクセストークンを発行するには、コンソールにある[再発行]ボタンを使います(長期のアクセストークンは、公式アカウントまたは特定のLINE@プランをご利用の場合はご利用いただけません)。
短期のチャネルアクセストークンを発行するAPIです。
最大で30件のトークンを発行できます。上限を超過した場合は、発行順に既存のチャネルアクセストークンが取り消されます。
HTTPリクエスト
POST https://api.line.me/v2/oauth/accessToken
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Content-Type | application/x-www-form-urlencoded |
リクエストボディ
フィールド | タイプ | 説明 |
---|---|---|
grant_type | String | client_credentials |
client_id | String | チャネルID。コンソールで確認できます。 |
client_secret | String | チャネルシークレット。コンソールで確認できます。 |
レスポンスの例
{
"access_token":"W1TeHCgfH2Liwa.....",
"expires_in":2592000,
"token_type":"Bearer"
}
レスポンス
HTTPステータスコード200
および以下の情報を含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
access_token | String | 短期のチャネルアクセストークン。有効期間は30日です。 注:チャネルアクセストークンは更新できません。 |
expires_in | Number | チャネルアクセストークンが発行されてから有効期限が切れるまでの秒数 |
token_type | String | Bearer |
エラーレスポンスの例
{
"error":"invalid_request",
"error_description":"some parameters missed or invalid"
}
エラーレスポンス
HTTPステータスコード400
および以下の情報を含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
error | String | エラーの概要 |
error_description | String | エラーの内容。特定の状況では返されません。 |
リクエストの例
curl -v -X POST https://api.line.me/v2/oauth/revoke \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'access_token={channel access token}'
チャネルアクセストークンを取り消す
チャネルアクセストークンを取り消すAPIです。
HTTPリクエスト
POST https://api.line.me/v2/oauth/revoke
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Content-Type | application/x-www-form-urlencoded |
リクエストボディ
フィールド | タイプ | 説明 |
---|---|---|
access_token | String | チャネルアクセストークン |
レスポンス
ステータスコード200
および空のレスポンスボディを返します。無効なチャネルアクセストークンを指定した場合はエラーが返りません。
エラーレスポンスの例
{
"error":"invalid_request",
"error_description":"some parameters missed or invalid"
}
エラーレスポンス
HTTPステータスコード400
および以下の情報を含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
error | String | エラーの概要 |
error_description | String | エラーの内容。特定の状況では返されません。 |
メッセージ
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/message/reply \
-H 'Content-Type:application/json' \
-H 'Authorization: Bearer {channel access token}' \
-d '{
"replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"messages":[
{
"type":"text",
"text":"Hello, user"
},
{
"type":"text",
"text":"May I help you?"
}
]
}'
応答メッセージを送る
ユーザー、グループ、またはトークルームからのイベントに対して応答メッセージを送信するAPIです。
イベントが発生するとwebhookを使って通知されます。応答できるイベントには応答トークンが発行されます。
応答トークンは一定の期間が経過すると無効になるため、メッセージを受信したらすぐに応答を返す必要があります。応答トークンは1回のみ使用できます。
HTTPリクエスト
POST https://api.line.me/v2/bot/message/reply
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Content-Type | application/json |
Authorization | Bearer {channel access token}
|
リクエストボディ
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
replyToken | String | 必須 | Webhookで受信する応答トークン |
messages | メッセージオブジェクトの配列 | 必須 | 送信するメッセージ 最大件数:5 |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/message/push \
-H 'Content-Type:application/json' \
-H 'Authorization: Bearer {channel access token}' \
-d '{
"to": "U4af4980629...",
"messages":[
{
"type":"text",
"text":"Hello, world1"
},
{
"type":"text",
"text":"Hello, world2"
}
]
}'
プッシュメッセージを送る
注:プッシュメッセージは一部のプランでのみご利用いただけます。詳しくは、LINE@サイトを参照してください。
ユーザー、グループ、またはトークルームに、任意のタイミングでプッシュメッセージを送信するAPIです。
HTTPリクエスト
POST https://api.line.me/v2/bot/message/push
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Content-Type | application/json |
Authorization | Bearer {channel access token}
|
リクエストボディ
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
to | String | 必須 | 送信先のID。Webhookイベントオブジェクトで返される、userId 、groupId 、またはroomId の値を使用します。LINEアプリに表示されるLINE IDは使用しないでください。 |
messages | メッセージオブジェクトの配列 | 必須 | 送信するメッセージ 最大件数:5 |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/message/multicast \
-H 'Content-Type:application/json' \
-H 'Authorization: Bearer {channel access token}' \
-d '{
"to": ["U4af4980629...","U0c229f96c4..."],
"messages":[
{
"type":"text",
"text":"Hello, world1"
},
{
"type":"text",
"text":"Hello, world2"
}
]
}'
複数のユーザーにメッセージを送る
注:プッシュメッセージに対応するプランでのみご利用いただけます。詳しくは、LINE@サイトを参照してください。
複数のユーザーに、任意のタイミングでプッシュメッセージを送信するAPIです。グループまたはトークルームにメッセージを送ることはできません。
HTTPリクエスト
POST https://api.line.me/v2/bot/message/multicast
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Content-Type | application/json |
Authorization | Bearer {channel access token}
|
リクエストボディ
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
to | 文字列の配列 | 必須 | ユーザーIDの配列。Webhookイベントオブジェクトで返されるuserId の値を使用します。LINEアプリに表示されるLINE IDは使用しないでください。最大ユーザーID数:150 |
messages | メッセージオブジェクトの配列 | 必須 | 送信するメッセージ 最大件数:5 |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/message/{messageId}/content \
-H 'Authorization: Bearer {channel access token}'
コンテンツを取得する
ユーザーが送信した画像、動画、および音声のデータを取得するAPIです。
HTTPリクエスト
GET https://api.line.me/v2/bot/message/{messageId}/content
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 説明 |
---|---|
messageId | メッセージID |
レスポンス
ステータスコード200
およびコンテンツのバイナリデータを返します。
メッセージが送信されてから一定期間後に、コンテンツは自動的に削除されます。コンテンツの保存期間は保証されません。
プロフィール
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/profile/{userId} \
-H 'Authorization: Bearer {channel access token}'
プロフィールを取得する
ユーザープロフィール情報を取得するAPIです。
HTTPリクエスト
GET https://api.line.me/v2/bot/profile/{userId}
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 説明 |
---|---|
userId | webhookイベントオブジェクトで返されるユーザーID。LINEアプリに表示されるLINE IDは使用しないでください。 |
レスポンスの例
{
"displayName":"LINE taro",
"userId":"U4af4980629...",
"pictureUrl":"http://obs.line-apps.com/...",
"statusMessage":"Hello, LINE!"
}
レスポンス
ステータスコード200
および以下の情報を含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
displayName | String | 表示名 |
userId | String | ユーザーID |
pictureUrl | String | 画像のURL |
statusMessage | String | ステータスメッセージ |
グループ
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/group/{groupId}/member/{userId} \
-H 'Authorization: Bearer {channel access token}'
グループメンバーのプロフィールを取得する
ボットが参加しているグループのメンバーの、ユーザープロフィールを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのプロフィールも取得します。
HTTPリクエスト
GET https://api.line.me/v2/bot/group/{groupId}/member/{userId}
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 説明 |
---|---|
groupId | グループID。Webhookイベントオブジェクトのsource オブジェクトで返されます。 |
userId | ユーザーID。Webhookイベントオブジェクトのsource オブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。 |
レスポンスの例
{
"displayName":"LINE taro",
"userId":"U4af4980629...",
"pictureUrl":"http://obs.line-apps.com/..."
}
レスポンス
ステータスコード200
および以下の情報を含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
displayName | String | 表示名 |
userId | String | ユーザーID |
pictureUrl | String | プロフィール画像のURL |
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/group/{groupId}/members/ids?start={continuationToken} \
-H 'Authorization: Bearer {channel access token}'
グループメンバーのユーザーIDを取得する
注:この機能は認証済みLINE@アカウントまたは公式アカウントのみでご利用いただけます。詳しくは、LINE@サイトの「LINE@アカウントを作成しましょう」ページまたはLINE Partnerサイトを参照してください。
ボットが参加しているグループのメンバーの、ユーザーIDを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのユーザーIDも取得します。
HTTPリクエスト
GET https://api.line.me/v2/bot/group/{groupId}/members/ids
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
groupId | 必須 | グループID。Webhookイベントオブジェクトのsource オブジェクトで返されます。 |
クエリパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
start | 任意 | 継続トークンの値。レスポンスで返されるJSONオブジェクトのnext プロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。 |
レスポンスの例
{
"memberIds":[
"U4af4980629...",
"U0c229f96c4...",
"U95afb1d4df..."
],
"next":"jxEWCEEP..."
}
レスポンス
ステータスコード200
および以下のプロパティを含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
memberIds | 文字列の配列 | グループメンバーのユーザーIDのリスト。memberIds で返されるユーザーIDの数は可変です。公式アカウントの利用条件に同意していないユーザーは、memberIds に含まれません。最大ユーザー数:100 |
next | String | 継続トークン。グループメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIds で取得しきれなかったユーザーIDがある場合にのみ返されます。 |
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/group/{groupId}/leave \
-H 'Authorization: Bearer {channel access token}'
グループから退出する
グループから退出するAPIです。
HTTPリクエスト
POST https://api.line.me/v2/bot/group/{groupId}/leave
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 説明 |
---|---|
groupId | グループID。Webhookイベントオブジェクトのsource オブジェクトで返されます。 |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
トークルーム
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/room/{roomId}/member/{userId} \
-H 'Authorization: Bearer {channel access token}'
トークルームメンバーのプロフィールを取得する
ボットが参加しているトークルームのメンバーの、ユーザープロフィールを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのプロフィールも取得します。
HTTPリクエスト
GET https://api.line.me/v2/bot/room/{roomId}/member/{userId}
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 説明 |
---|---|
roomId | トークルームID。Webhookイベントオブジェクトのsource オブジェクトで返されます。 |
userId | ユーザーID。Webhookイベントオブジェクトのsource オブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。 |
レスポンスの例
{
"displayName":"LINE taro",
"userId":"U4af4980629...",
"pictureUrl":"http://obs.line-apps.com/..."
}
レスポンス
ステータスコード200
および以下の情報を含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
displayName | String | 表示名 |
userId | String | ユーザーID |
pictureUrl | String | プロフィール画像のURL |
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/room/{roomId}/members/ids?start={continuationToken} \
-H 'Authorization: Bearer {channel access token}'
トークルームメンバーのユーザーIDを取得する
注:この機能は認証済みLINE@アカウントまたは公式アカウントのみでご利用いただけます。詳しくは、LINE@サイトの「LINE@アカウントを作成しましょう」ページまたはLINE Partnerサイトを参照してください。
ボットが参加しているトークルームのメンバーの、ユーザーIDを取得するAPIです。ボットを友だちとして追加していないユーザーや、ボットをブロックしているユーザーのユーザーIDも取得します。
HTTPリクエスト
GET https://api.line.me/v2/bot/room/{roomId}/members/ids
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
roomId | 必須 | トークルームID。Webhookイベントオブジェクトのsource オブジェクトで返されます。 |
クエリパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
start | 任意 | 継続トークンの値。レスポンスで返されるJSONオブジェクトのnext プロパティに含まれます。1回のリクエストでユーザーIDをすべて取得できない場合は、このパラメータを指定して残りの配列を取得します。 |
レスポンスの例
{
"memberIds":[
"U4af4980629...",
"U0c229f96c4...",
"U95afb1d4df..."
],
"next":"jxEWCEEP..."
}
レスポンス
ステータスコード200
および以下のプロパティを含むJSONオブジェクトを返します。
プロパティ | タイプ | 説明 |
---|---|---|
memberIds | 文字列の配列 | トークルームメンバーのユーザーIDのリスト。memberIds で返されるユーザーIDの数は可変です。公式アカウントの利用条件に同意していないユーザーは、memberIds に含まれません。最大ユーザー数:100 |
next | String | 継続トークン。トークルームメンバーのユーザーIDの、次の配列を取得するために使用します。このプロパティは、前回までのレスポンスのmemberIds で取得しきれなかったユーザーIDがある場合にのみ返されます。 |
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/room/{roomId}/leave \
-H 'Authorization: Bearer {channel access token}'
トークルームから退出する
トークルームから退出するAPIです。
HTTPリクエスト
POST https://api.line.me/v2/bot/room/{roomId}/leave
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 説明 |
---|---|
roomId | トークルームID。Webhookイベントオブジェクトのsource オブジェクトで返されます。 |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リッチメニュー
注:Messaging APIで作成したリッチメニューは、LINE AndroidおよびLINE iOSのバージョン7.14.0以降でサポートされます。
ボットのトーク画面に表示される、カスタマイズ可能なメニューです。詳しくは、「リッチメニューを使う」を参照してください。
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/richmenu/{richMenuId} \
-H 'Authorization: Bearer {channel access token}'
リッチメニューを取得する
IDを指定してリッチメニューを取得するAPIです。
HTTPリクエスト
GET https://api.line.me/v2/bot/richmenu/{richMenuId}
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
richMenuId | 必須 | アップロードされたリッチメニューのID |
レスポンスの例
{
"richMenuId": "{richMenuId}",
"size": {
"width": 2500,
"height": 1686
},
"selected": false,
"areas": [
{
"bounds": {
"x": 0,
"y": 0,
"width": 2500,
"height": 1686
},
"action": {
"type": "postback"
"data": "action=buy&itemid=123"
}
}
]
}
レスポンス
ステータスコード200
と、リッチメニューレスポンスオブジェクトを含むJSONレスポンスが返されます。
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/richmenu \
-H 'Authorization: Bearer {channel access token}' \
-H 'Content-Type: application/json' \
-d \
'{
"size": {
"width": 2500,
"height": 1686
},
"selected": false,
"name": "Nice richmenu",
"chatBarText": "Tap here",
"areas": [
{
"bounds": {
"x": 0,
"y": 0,
"width": 2500,
"height": 1686
},
"action": {
"type": "postback",
"data": "action=buy&itemid=123"
}
}
]
}'
リッチメニューを作成する
リッチメニューを作成するAPIです。
リッチメニューを表示するには、リッチメニューの画像をアップロードし、さらにリッチメニューをユーザーとリンクする必要があります。1つのボットに対して最大で10件のリッチメニューを作成できます。
HTTPリクエスト
POST https://api.line.me/v2/bot/richmenu
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
Content-Type | application/json |
リクエストボディ
リッチメニューオブジェクトとして表されるリッチメニューを指定します。
レスポンスの例
{
"richMenuId": "{richMenuId}"
}
レスポンス
ステータスコード200
およびリッチメニューIDを返します。
リクエストの例
curl -v -X DELETE https://api.line.me/v2/bot/richmenu/{richMenuId} \
-H 'Authorization: Bearer {channel access token}'
リッチメニューを削除する
リッチメニューを削除するAPIです。
HTTPリクエスト
DELETE https://api.line.me/v2/bot/richmenu/{richMenuId}
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
richMenuId | 必須 | アップロードされたリッチメニューのID |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/user/{userId}/richmenu \
-H 'Authorization: Bearer {channel access token}'
ユーザーのリッチメニューのIDを取得する
ユーザーにリンクされたリッチメニューのIDを取得するAPIです。
HTTPリクエスト
GET https://api.line.me/v2/bot/user/{userId}/richmenu
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
userId | ユーザーID。Webhookイベントオブジェクトのsource オブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。 |
レスポンスの例
{
"richMenuId": "{richMenuId}"
}
レスポンス
ステータスコード200
およびリッチメニューIDを表すJSONオブジェクトを返します。
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/user/{userId}/richmenu/{richMenuId} \
-H "Authorization: Bearer {channel access token}"
リッチメニューとユーザーをリンクする
リッチメニューとユーザーをリンクするAPIです。複数のリッチメニューを1人のユーザーに同時にリンクすることはできません。
HTTPリクエスト
POST https://api.line.me/v2/bot/user/{userId}/richmenu/{richMenuId}
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
richMenuId | 必須 | アップロードされたリッチメニューのID |
userId | 必須 | ユーザーID。Webhookイベントオブジェクトのsource オブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。 |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リクエストの例
curl -v -X DELETE https://api.line.me/v2/bot/user/{userId}/richmenu \
-H 'Authorization: Bearer {channel access token}'
リッチメニューとユーザーのリンクを解除する
リッチメニューとユーザーのリンクを解除するAPIです。
HTTPリクエスト
DELETE https://api.line.me/v2/bot/user/{userId}/richmenu
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
userId | 必須 | ユーザーID。Webhookイベントオブジェクトのsource オブジェクトで返されます。LINEアプリに表示されるLINE IDは使用しないでください。 |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/richmenu/{richMenuId}/content \
-H 'Authorization: Bearer {channel access token}' \
-o picture.jpg
リッチメニューの画像をダウンロードする
リッチメニューの画像をダウンロードするAPIです。
HTTPリクエスト
GET https://api.line.me/v2/bot/richmenu/{richMenuId}/content
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
richMenuId | 必須 | 画像をダウンロードするリッチメニューのID |
レスポンス
ステータスコード200
およびリッチメニュー画像のバイナリデータを返します。リクエストの例に示すように、cURLを使って画像をダウンロードできます。
リクエストの例
curl -v -X POST https://api.line.me/v2/bot/richmenu/{richMenuId}/content \
-H "Authorization: Bearer {channel access token}" \
-H "Content-Type: image/jpeg" \
-T image.jpg
リッチメニューの画像をアップロードする
画像をアップロードしてリッチメニューに付加するAPIです。
リッチメニューの画像は以下の要件を満たす必要があります。
- 画像フォーマット:JPEGまたはPNG
- 画像サイズ:2500×1686または2500×843ピクセル
- 最大ファイルサイズ:1MB
注:リッチメニューに付加された画像を置き換えることはできません。リッチメニューの画像を更新するには、新しいリッチメニューオブジェクトを作成して、新しい画像をアップロードします。
HTTPリクエスト
POST https://api.line.me/v2/bot/richmenu/{richMenuId}/content
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
Content-Type |
image/jpeg またはimage/png
|
Content-Length | リクエストボディのオクテット(8ビットバイト)での長さ。正の値である必要があります。 |
パスパラメータ
パラメータ | 必須 | 説明 |
---|---|---|
richMenuId | 必須 | 画像を付加するリッチメニューのID |
レスポンスの例
{}
レスポンス
ステータスコード200
および空のJSONオブジェクトを返します。
リクエストの例
curl -v -X GET https://api.line.me/v2/bot/richmenu/list \
-H 'Authorization: Bearer {channel access token}'
リッチメニューのリストを取得する
アップロードされたすべてのリッチメニューを取得するAPIです。
HTTPリクエスト
GET https://api.line.me/v2/bot/richmenu/list
リクエストヘッダー
リクエストヘッダー | 説明 |
---|---|
Authorization | Bearer {channel access token}
|
レスポンスの例
{
"richmenus": [
{
"richMenuId": "{richMenuId}",
"size": {
"width": 2500,
"height": 1686
},
"selected": false,
"areas": [
{
"bounds": {
"x": 0,
"y": 0,
"width": 2500,
"height": 1686
},
"action": {
"type": "postback"
"data": "action=buy&itemid=123"
}
}
]
}
]
}
テキストの例
{
"type": "text",
"text": "Hello, world"
}
テキスト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | text |
text | String | 必須 | メッセージのテキスト。以下の絵文字を含めることができます。
|
絵文字を含むテキストの例
{
"type": "text",
"text": "\uDBC0\uDC84 LINE emoji"
}
スタンプの例
{
"type": "sticker",
"packageId": "1",
"stickerId": "1"
}
画像の例
{
"type": "image",
"originalContentUrl": "https://example.com/original.jpg",
"previewImageUrl": "https://example.com/preview.jpg"
}
動画の例
{
"type": "video",
"originalContentUrl": "https://example.com/original.mp4",
"previewImageUrl": "https://example.com/preview.jpg"
}
音声の例
{
"type": "audio",
"originalContentUrl": "https://example.com/original.m4a",
"duration": 60000
}
位置情報の例
{
"type": "location",
"title": "my location",
"address": "〒150-0002 東京都渋谷区渋谷2丁目21−1",
"latitude": 35.65910807942215,
"longitude": 139.70372892916203
}
2つのタップ領域を持つイメージマップの例
{
"type": "imagemap",
"baseUrl": "https://example.com/bot/images/rm001",
"altText": "This is an imagemap",
"baseSize": {
"height": 1040,
"width": 1040
},
"actions": [
{
"type": "uri",
"linkUri": "https://example.com/",
"area": {
"x": 0,
"y": 0,
"width": 520,
"height": 1040
}
},
{
"type": "message",
"text": "Hello",
"area": {
"x": 520,
"y": 0,
"width": 520,
"height": 1040
}
}
]
}
イメージマップメッセージ
注:イメージマップメッセージは、以下のバージョンのLINEアプリで対応しています。
iOS版3.9.1以降、Android版3.9.2以降、Windows Phone版3.6.0以降、WindowsおよびMac OS版4.4.1以降
イメージマップは、1つ以上のリンクが設定された画像です。画像全体に1つのリンクを割り当てることも、画像を区切って複数のリンクを割り当てることもできます。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | imagemap |
baseUrl | String | 必須 | 画像のベースURL(最大文字数:1000) HTTPS |
altText | String | 必須 | 代替テキスト 最大文字数:400 |
baseSize.width | Number | 必須 | 基本画像の幅(px単位)。1040を指定します。 |
baseSize.height | Number | 必須 | 基本画像の幅を1040pxとした場合の高さ |
actions | イメージマップアクションオブジェクトの配列 | 必須 | 画像がタップされたときのアクション 最大件数:50 |
画像の設定方法
イメージマップに使える画像の仕様は以下のとおりです。
- 画像フォーマット:JPEGまたはPNG
- 画像の幅:240px、300px、460px、700px、および1040px
- データサイズ:最大1MB
5つの異なるサイズの画像を「baseUrl/{画像の幅サイズ}
」の形式でアクセスできるようにします。これにより、デバイスに応じて望ましい解像度でLINEアプリに画像がダウンロードされます。
たとえば、ベースURLが以下の場合を考えます。
https://example.com/images/cats
幅が700pxの画像のURLは以下になります。
https://example.com/images/cats/700
イメージマップアクションオブジェクト
イメージマップに設定するアクションとタップ領域を表すオブジェクトです。
領域がタップされると、uri
の場合は指定するURIにユーザーがリダイレクトされ、message
の場合は指定するメッセージが送信されます。
イメージマップURIアクションオブジェクトの例
{
"type":"uri",
"label":"https://example.com/",
"linkUri":"https://example.com/",
"area":{
"x":0,
"y":0,
"width":520,
"height":1040
}
}
イメージマップURIアクションオブジェクト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | uri |
label | String | 任意 | アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。 最大文字数:50 LINE iOSのバージョン8.2.0以降でサポートされます。 |
linkUri | String | 必須 | ウェブページのURL 最大文字数:1000 |
area | イメージマップ領域オブジェクト | 必須 | タップ領域の定義 |
イメージマップメッセージアクションオブジェクトの例
{
"type":"message",
"label":"hello",
"text":"hello",
"area":{
"x":520,
"y":0,
"width":520,
"height":1040
}
}
イメージマップメッセージアクションオブジェクト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | message |
label | String | 任意 | アクションのラベル。ユーザーデバイスのアクセシビリティ機能が有効な場合に読み上げられます。 最大文字数:50 LINE iOSのバージョン8.2.0以降でサポートされます。 |
text | String | 必須 | 送信するメッセージ 最大文字数:400 iOSおよびAndroid版のLINEアプリでのみサポートされます。 |
area | イメージマップ領域オブジェクト | 必須 | タップ領域の定義 |
イメージマップ領域オブジェクトの例
{
"x":520,
"y":0,
"width":520,
"height":1040
}
テンプレートメッセージ
注:テンプレートメッセージはiOS版およびAndroid版のLINE 6.7.0以降で対応しています。
テンプレートメッセージは、あらかじめレイアウトが定義されたテンプレートをカスタマイズして構築するメッセージです。詳しくは、「テンプレートメッセージ」を参照してください。
以下のタイプのテンプレートメッセージを利用できます。
テンプレートメッセージオブジェクトの共通プロパティ
以下のプロパティは、すべてのテンプレートメッセージオブジェクトで共通です。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | template |
altText | String | 必須 | 代替テキスト 最大文字数:400 |
template | Object | 必須 | ボタン、確認、カルーセル、または画像カルーセルオブジェクト |
ボタンテンプレートメッセージの例
{
"type": "template",
"altText": "This is a buttons template",
"template": {
"type": "buttons",
"thumbnailImageUrl": "https://example.com/bot/images/image.jpg",
"imageAspectRatio": "rectangle",
"imageSize": "cover",
"imageBackgroundColor": "#FFFFFF",
"title": "Menu",
"text": "Please select",
"defaultAction": {
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/123"
},
"actions": [
{
"type": "postback",
"label": "Buy",
"data": "action=buy&itemid=123"
},
{
"type": "postback",
"label": "Add to cart",
"data": "action=add&itemid=123"
},
{
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/123"
}
]
}
}
ボタン
画像、タイトル、テキストに加えて、複数のアクションボタンが含まれたテンプレートメッセージです。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | buttons |
thumbnailImageUrl | String | 任意 | 画像URL(最大文字数:1000) HTTPS JPEGまたはPNG 最大横幅サイズ:1024px 最大ファイルサイズ:1MB |
imageAspectRatio | String | 任意 | 画像のアスペクト比。以下のいずれかの値を指定します。
rectangle です。 |
imageSize | String | 任意 | 画像の表示形式。以下のいずれかの値を指定します。
cover です。 |
imageBackgroundColor | String | 任意 | 画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF (白)です。 |
title | String | 任意 | タイトル 最大文字数:40 |
text | String | 必須 | メッセージテキスト 画像もタイトルも指定しない場合の最大文字数:160 画像またはタイトルを指定する場合の最大文字数:60 |
defaultAction | アクションオブジェクト | 任意 | 画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション |
actions | アクションオブジェクトの配列 | 必須 | タップされたときのアクション 最大件数:4 |
確認テンプレートメッセージの例
{
"type": "template",
"altText": "this is a confirm template",
"template": {
"type": "confirm",
"text": "Are you sure?",
"actions": [
{
"type": "message",
"label": "Yes",
"text": "yes"
},
{
"type": "message",
"label": "No",
"text": "no"
}
]
}
}
確認
2つのアクションボタンを表示するテンプレートメッセージです。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | confirm |
text | String | 必須 | メッセージのテキスト 最大文字数:240 |
actions | アクションオブジェクトの配列 | 必須 | タップされたときのアクション 2つのボタンに1つずつアクションを設定します。 |
カルーセルテンプレートメッセージの例
{
"type": "template",
"altText": "this is a carousel template",
"template": {
"type": "carousel",
"columns": [
{
"thumbnailImageUrl": "https://example.com/bot/images/item1.jpg",
"imageBackgroundColor": "#FFFFFF",
"title": "this is menu",
"text": "description",
"defaultAction": {
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/123"
},
"actions": [
{
"type": "postback",
"label": "Buy",
"data": "action=buy&itemid=111"
},
{
"type": "postback",
"label": "Add to cart",
"data": "action=add&itemid=111"
},
{
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/111"
}
]
},
{
"thumbnailImageUrl": "https://example.com/bot/images/item2.jpg",
"imageBackgroundColor": "#000000",
"title": "this is menu",
"text": "description",
"defaultAction": {
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/222"
},
"actions": [
{
"type": "postback",
"label": "Buy",
"data": "action=buy&itemid=222"
},
{
"type": "postback",
"label": "Add to cart",
"data": "action=add&itemid=222"
},
{
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/222"
}
]
}
],
"imageAspectRatio": "rectangle",
"imageSize": "cover"
}
}
カルーセル
複数のカラムを表示するテンプレートメッセージです。カラムは横にスクロールして順番に表示できます。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | carousel |
columns | カラムオブジェクトの配列 | 必須 | カラムの配列 最大カラム数:10 |
imageAspectRatio | String | 任意 | 画像のアスペクト比。以下のいずれかの値を指定します。
rectangle です。 |
imageSize | String | 任意 | 画像の表示形式。以下のいずれかの値を指定します。
cover です。 |
カルーセルのカラムオブジェクト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
thumbnailImageUrl | String | 任意 | 画像URL(最大文字数:1000) HTTPS JPEGまたはPNG 縦横比:1:1.51 最大横幅サイズ:1024px 最大ファイルサイズ:1MB |
imageBackgroundColor | String | 任意 | 画像の背景色。RGB値で設定します。デフォルト値は#FFFFFF (白)です。 |
title | String | 任意 | タイトル 最大文字数:40 |
text | String | 必須 | メッセージテキスト 画像もタイトルも指定しない場合の最大文字数:120 画像またはタイトルを指定する場合の最大文字数:60 |
defaultAction | アクションオブジェクト | 任意 | 画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション |
actions | アクションオブジェクトの配列 | 必須 | タップされたときのアクション 最大件数:3 |
画像カルーセルテンプレートメッセージの例
{
"type": "template",
"altText": "this is a image carousel template",
"template": {
"type": "image_carousel",
"columns": [
{
"imageUrl": "https://example.com/bot/images/item1.jpg",
"action": {
"type": "postback",
"label": "Buy",
"data": "action=buy&itemid=111"
}
},
{
"imageUrl": "https://example.com/bot/images/item2.jpg",
"action": {
"type": "message",
"label": "Yes",
"text": "yes"
}
},
{
"imageUrl": "https://example.com/bot/images/item3.jpg",
"action": {
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/222"
}
}
]
}
}
画像カルーセル
複数の画像を表示するテンプレートメッセージです。画像は横にスクロールして順番に表示できます。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | image_carousel |
columns | カラムオブジェクトの配列 | 必須 | カラムの配列 最大カラム数:10 |
画像カルーセルのカラムオブジェクト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
imageUrl | String | 必須 | 画像URL(最大文字数:1000) HTTPS JPEGまたはPNG 縦横比:1:1 最大横幅サイズ:1024px 最大ファイルサイズ:1MB |
action | アクションオブジェクト | 必須 | 画像がタップされたときのアクション |
ポストバックアクションオブジェクトの例
{
"type":"postback",
"label":"Buy",
"data":"action=buy&itemid=111",
"text":"Buy"
}
ポストバックアクション
このアクションが関連づけられたコントロールがタップされると、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 フィールドは、同時に設定できません。 |
メッセージアクションオブジェクトの例
{
"type":"message",
"label":"Yes",
"text":"Yes"
}
メッセージアクション
このアクションが関連づけられたコントロールがタップされると、text
プロパティの文字列がユーザーからのメッセージとして送信されます。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | message |
label | String | 説明を参照 | アクションのラベル
|
text | String | 必須 | アクションの実行時に送信されるテキスト 最大文字数:300 |
URIアクションオブジェクトの例
{
"type":"uri",
"label":"View details",
"uri":"http://example.com/page/222"
}
URIアクション
このアクションが関連づけられたコントロールがタップされると、uri
プロパティのURIが開きます。
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
type | String | 必須 | uri |
label | String | 説明を参照 | アクションのラベル
|
uri | String | 必須 | アクションの実行時に開かれるURI(最大文字数:1000)http 、https 、またはtel で始める必要があります。 |
日時選択アクションオブジェクトの例
{
"type":"datetimepicker",
"label":"Select date",
"data":"storeId=12345",
"mode":"datetime",
"initial":"2017-12-25t00:00",
"max":"2018-01-24t23:59",
"min":"2017-12-25t00:00"
}
日時選択アクション
注:日時選択アクションは、iOS版LINE 7.9.0およびAndroid版LINE 7.12.0以降で利用できます。
このアクションが関連づけられたコントロールがタップされると、日時選択ダイアログでユーザーが選択した日時を含むポストバックイベントが、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プロトコルで定義されています。
モード | 形式 | 例 |
---|---|---|
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 |
リッチメニューの構造
リッチメニューは以下のどちらかのオブジェクトで表されます。
- リッチメニューIDを含まないリッチメニューオブジェクト。リッチメニューの作成時にこのオブジェクトを使用します。
- リッチメニューIDを含むリッチメニューレスポンスオブジェクト。リッチメニューの取得時またはリッチメニューのリストの取得時にこのオブジェクトが返されます。
これらのオブジェクトは領域オブジェクトとアクションオブジェクトから構成されます。
リッチメニューオブジェクトの例
{
"size": {
"width": 2500,
"height": 1686
},
"selected": false,
"name": "Nice richmenu",
"chatBarText": "Tap to open",
"areas": [
{
"bounds": {
"x": 0,
"y": 0,
"width": 2500,
"height": 1686
},
"action": {
"type": "postback",
"data": "action=buy&itemid=123"
}
}
]
}
リッチメニューオブジェクト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
size | Object | 必須 |
size オブジェクト。トークルームに表示されるリッチメニューの幅と高さを表します。使用できるリッチメニューの画像サイズは2500×1686pxおよび2500×843pxです。 |
selected | Boolean | 必須 | デフォルトでリッチメニューを表示する場合はtrue です。そうでなければfalse です。 |
name | String | 必須 | リッチメニューの名前。リッチメニューの管理に役立ちます。ユーザーには表示されません。 最大文字数:300 |
chatBarText | String | 必須 | トークルームメニューに表示されるテキストです。 最大文字数:14 |
areas | Array | 必須 | タップ領域の座標とサイズを定義する、領域オブジェクトの配列。 最大領域オブジェクト数:20 |
リッチメニューレスポンスオブジェクトの例
{
"richMenuId": "{richMenuId}",
"size": {
"width": 2500,
"height": 1686
},
"selected": false,
"name": "Nice richmenu",
"chatBarText": "Tap to open",
"areas": [
{
"bounds": {
"x": 0,
"y": 0,
"width": 2500,
"height": 1686
},
"action": {
"type": "postback",
"label":"Buy",
"data": "action=buy&itemid=123"
}
}
]
}
リッチメニューレスポンスオブジェクト
プロパティ | タイプ | 説明 |
---|---|---|
richMenuId | String | リッチメニューID |
size | Object |
size オブジェクト。トークルームに表示されるリッチメニューの幅と高さを表します。使用できるリッチメニューの画像サイズは2500×1686pxおよび2500×843pxです。 |
selected | Boolean | デフォルトでリッチメニューを表示する場合はtrue です。そうでなければfalse です。 |
name | String | リッチメニューの名前。リッチメニューの管理に役立ちます。ユーザーには表示されません。 最大文字数:300 |
chatBarText | String | トークルームメニューに表示されるテキストです。 最大文字数:14 |
areas | Array | タップ領域の座標とサイズを定義する、領域オブジェクトの配列。 最大領域オブジェクト数:20 |
sizeオブジェクトの例
{
"width":520,
"height":1040
}
size
オブジェクト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
width | Number | 必須 | リッチメニューの幅。2500 である必要があります。 |
height | Number | 必須 | リッチメニューの高さ。1686 または843 である必要があります。 |
領域オブジェクトの例
{
"bounds": {
"x": 0,
"y": 0,
"width": 2500,
"height": 1686
},
"action": {
"type": "postback",
"label":"Buy",
"data": "action=buy&itemid=123"
}
}
領域オブジェクト
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
bounds | Object | 必須 | 領域の境界をピクセルで表すオブジェクト。「bounds オブジェクト」を参照してください。 |
action | Object | 必須 | 領域がタップされたときに実行されるアクション。「アクションオブジェクト」を参照してください。 |
boundsオブジェクトの例
{
"x":0,
"y":0,
"width":2500,
"height":1686
}