# メッセージを送信する

作成したボットは、大きく分けて2種類の送信方法(応答メッセージプッシュメッセージ)を利用して、さまざまなタイプのメッセージをユーザーに送信できます。

dummy dummy
送信方法
  • 応答メッセージ
  • プッシュメッセージ
    • プッシュメッセージ(1対1)
    • マルチキャストメッセージ(1対多:ユーザーID指定)
    • ナローキャストメッセージ(1対多:絞り込み配信)
    • ブロードキャストメッセージ(1対多:すべての友だち)
メッセージタイプ
  • テキストメッセージ
  • スタンプメッセージ
  • 画像メッセージ
  • 動画メッセージ
  • 音声メッセージ
  • 位置情報メッセージ
  • イメージマップメッセージ
  • テンプレートメッセージ
  • Flex Message
メッセージタイプについて詳しくは、「メッセージタイプ」を参照してください。

# メッセージの送信方法

Messaging APIでは、大きく分けて2種類の送信方法(応答メッセージプッシュメッセージ)を利用できます。

# 応答メッセージ

応答メッセージは、ユーザーがLINE公式アカウントを友だち追加したり、LINE公式アカウントにメッセージを送ったりなど、ユーザーのアクションに応答するためのメッセージです。

ボディには、Webhookイベントに含まれている応答トークンを指定します。1回のリクエストでメッセージオブジェクトを最大5つまで送信できます。

リクエストの例

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?"
        }
    ]
}'

詳しくは、『Messaging APIリファレンス』の「応答メッセージを送る」を参照してください。

# プッシュメッセージ

プッシュメッセージは、任意のタイミングでユーザーに送信できるメッセージです。以下のいずれかの方法で送信できます。

送信方法 送信先
プッシュメッセージ 1人のユーザーに送信する
マルチキャストメッセージ 複数のユーザーに送信する
ナローキャストメッセージ 属性情報やリターゲティングを利用して複数のユーザーに送信する
ブロードキャストメッセージ LINE公式アカウントと友だちになっているすべてのユーザーに送信する

応答メッセージとは異なり、プッシュメッセージには応答トークンは不要です。1回のリクエストでメッセージオブジェクトを最大5つまで送信できます。

マルチキャストメッセージのリクエストの例

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"
        }
    ]
}'

# 属性情報やリターゲティングを利用して複数のユーザーに送信する(ナローキャストメッセージ)

複数のユーザーに、任意のタイミングでプッシュメッセージを送信します。送信対象は、属性情報(性別や年齢、OSの種類、地域など)やリターゲティング(オーディエンス)を利用して指定できます。グループまたはトークルームにメッセージを送ることはできません。

ナローキャストメッセージは、以下の流れで送信します。

  1. 送信対象を準備する
  2. ナローキャストメッセージの送信を開始する
  3. ナローキャストメッセージの進行状況を確認する
非同期に送信されます

ナローキャストメッセージは、バックグラウンドで非同期に送信されます。送信開始時は必ず成功しますが、送信開始後、失敗している可能性があります。送信が成功したかどうかは、進行状況を確認してください。

# 送信対象を準備する

送信対象によって、準備する情報が異なります。これらの送信対象は、演算子(AND、OR、NOT)を利用して合成できます。たとえば、「メッセージAを受信したユーザー」または(OR)「メッセージBのURLをクリックしたユーザー」を送信対象にできます。

送信対象 準備する情報
LINE公式アカウントを友だち追加したすべてのユーザー なし
ユーザーIDやIFA(Identifier For Advertisers)で特定できるユーザー ユーザーIDアップロード用のオーディエンスを作成する
過去に配信したメッセージのURLをクリックしたユーザー クリックリターゲティング用のオーディエンスを作成する
過去に配信したメッセージを開封したユーザー インプレッションリターゲティング用のオーディエンスを作成する

※オーディエンスを作成した場合は、以下の説明に従って、オーディエンスが配信に利用できることを確認してください。

# オーディエンスが配信に利用できることを確認する

オーディエンスの作成は、バックグラウンドで非同期に行われます。オーディエンスのステータスがREADY(配信に利用可能)になったことを確認してから、ナローキャストメッセージの送信を開始します。

オーディエンスのステータスは、以下のエンドポイントで確認できます。

curl -v -X GET https://api.line.me/v2/bot/audienceGroup/{audienceGroupId} \
-H 'Authorization: Bearer {channel access token}'

レスポンスのstatusプロパティが、READY(配信に利用可能)になっていれば、そのオーディエンスを送信対象に指定して、ナローキャストメッセージの送信を開始できます。

オーディエンスのステータスを確認する方法について詳しくは、『Messaging APIリファレンス』の「オーディエンスの情報を取得する」を参照してください。

# ナローキャストメッセージの送信を開始する

送信するメッセージ(messagesプロパティ)と、送信対象(レシピエントオブジェクト。recipientプロパティ)を指定してナローキャストメッセージの送信を開始できます。recipientプロパティを省略すると、LINE公式アカウントを友だち追加したすべてのユーザーが送信対象になります。

レシピエントオブジェクトは、積集合(AND)、和集合(OR)、差集合(NOT)を使用して、複雑な条件を表現できます。

オーディエンスを表すレシピエントオブジェクトの例

{
    "type": "audience",
    "audienceGroupId": 5614991017776
}

また、別途デモグラフィックフィルターオブジェクト(filter.demographicプロパティ)を指定すると、友だちの属性情報(性別や年齢、OSの種類、地域など)を使用して、セグメント配信ができます。デモグラフィックフィルターオブジェクトも、積集合(AND)、和集合(OR)、差集合(NOT)を使用して、複雑な条件を表現できます。

属性情報の利用について
  • 属性情報は3日前の属性情報を元に絞込みます。
  • 属性を指定しない場合は、属性が「不明」になっているユーザーを含めた全員に配信されます。

性別を使用してフィルタリングするデモグラフィックフィルターオブジェクトの例

{
    "type": "gender",
    "oneOf": [
        "male",
        "female"
    ]
}

リクエストの例

curl -v -X POST https://api.line.me/v2/bot/message/narrowcast \
-H 'Authorization: Bearer {channel access token}' \
-H 'Content-Type: application/json' \
-d '{
    "messages": [
        {
            "type": "text",
            "text": "test message"
        }
    ],
    "recipient": {
        "type": "operator",
        "and": [
            {
                "type": "audience",
                "audienceGroupId": 5614991017776
            },
            {
                "type": "operator",
                "not": {
                    "type": "audience",
                    "audienceGroupId": 4389303728991
                }
            }
        ]
    },
    "filter": {
        "demographic": {
            "type": "operator",
            "or": [
                {
                    "type": "operator",
                    "and": [
                        {
                            "type": "gender",
                            "oneOf": [
                                "male",
                                "female"
                            ]
                        },
                        {
                            "type": "age",
                            "gte": "age_20",
                            "lt": "age_25"
                        },
                        {
                            "type": "appType",
                            "oneOf": [
                                "android",
                                "ios"
                            ]
                        },
                        {
                            "type": "area",
                            "oneOf": [
                                "jp_23",
                                "jp_05"
                            ]
                        },
                        {
                            "type": "subscriptionPeriod",
                            "gte": "day_7",
                            "lt": "day_30"
                        }
                    ]
                },
                {
                    "type": "operator",
                    "and": [
                        {
                            "type": "age",
                            "gte": "age_35",
                            "lt": "age_40"
                        },
                        {
                            "type": "operator",
                            "not": {
                                "type": "gender",
                                "oneOf": [
                                    "male"
                                ]
                            }
                        }
                    ]
                }
            ]
        }
    },
    "limit": {
        "max": 100
    }
}'

ナローキャストメッセージを送る方法について詳しくは、『Messaging APIリファレンス』の「ナローキャストメッセージを送る」を参照してください。

# ナローキャストメッセージの進行状況を確認する

ナローキャストメッセージは、バックグラウンドで非同期に送信されます。そのため、ナローキャストメッセージが正しく送信できたかどうかを確認するためのエンドポイントがあります。

curl -v -X GET https://api.line.me/v2/bot/message/progress/narrowcast?requestId={request_id} \
-H 'Authorization: Bearer {channel access token}'

ナローキャストメッセージの進行状況を確認する方法について詳しくは、『Messaging APIリファレンス』の「ナローキャストメッセージの進行状況を取得する」を参照してください。

# ナローキャストメッセージの使用制限について

ナローキャストメッセージを使用するには、以下の点に注意してください。

  • 属性情報を利用するには、100人以上のターゲットリーチが必要です。
  • 送信対象が50人以上になるように、オーディエンスと属性情報を組み合わせてください。この基準が満たされない場合は、ナローキャストメッセージを送信できません。ただし、以下の場合は、送信対象が50人未満でも送信できます。
    • 属性情報を利用せずにユーザーIDアップロード用のオーディエンスを使った場合
    • チャットタグオーディエンスを使った場合
  • ナローキャストメッセージを送信するときは、オーディエンス(レシピエントオブジェクト)は、合計10件まで指定できます。