# LINE通知メッセージAPIの技術仕様
本ドキュメントに記載の機能は、所定の申請等を行った法人ユーザーのみがご利用いただけます。自社のLINE公式アカウントでご利用になりたいお客様は、担当営業までご連絡いただくか、弊社パートナー (opens new window)にお問い合わせください。
# LINE通知メッセージAPIとは
LINE通知メッセージAPIを使うと、指定した電話番号のユーザーにLINE通知メッセージを送ったり、送信済みのメッセージの数を取得したりできます。
詳しくは、「LINE通知メッセージAPIリファレンス」を参照してください。
# LINE通知メッセージAPIで送信可能なメッセージ
LINE通知メッセージAPIでは、すべてのタイプのメッセージが送信できます。ただし、送信するメッセージの内容は「LINE通知メッセージUXガイドライン (opens new window)」の内容に準拠する必要があります。
LINE通知メッセージAPIによるLINE通知メッセージの送信には所定の審査があります。審査に通過したメッセージのみ送信できます。
# 電話番号のハッシュ化
LINE通知メッセージAPIで宛先to
を指定する際には、E.164形式に正規化された電話番号、例:+818000001234
をSHA256でハッシュ化した文字列を指定します。ハイフンは含まないでください。以下はPython3を用いた電話番号のハッシュ化の例です。
import hashlib
phone_number = "+818000001234"
hashed_phone_number = hashlib.sha256(phone_number.encode()).hexdigest()
print(hashed_phone_number)
# d41e0ad70dddfeb68f149ad6fc61574b9c5780ab7bcb2fba5517771ffbb2409c
# メッセージの送信通知を受信する
LINE通知メッセージAPIをリクエストし、ユーザーに対してLINE通知メッセージの送信が完了した際に、専用のWebhookイベント(配信完了イベント)がLINEプラットフォームから送信されます。
リクエスト時にリクエストヘッダーのX-Line-Delivery-Tag
で任意の文字列を指定すると、Webhookの配信完了イベントのdelivery.data
プロパティでその文字列が返されます。X-Line-Delivery-Tag
は、Webhook受信時にどのメッセージが配信完了したのかを判別する、などの用途で使用できます。
詳しくはWebhookの配信完了イベントを参照してください。
# 送信済みLINE通知メッセージの数を取得する
送信済みLINE通知メッセージの数は、以下の方法で取得できます。
送信通数には、実際にユーザーに送信されたLINE通知メッセージの通数のみが集計されます。送信条件について詳しくは、『法人ユーザー向けオプションAPIリファレンス』の「LINE通知メッセージが送信される条件」を参照してください。
# LINE Developersコンソールで取得する
LINE Developers コンソールにログインし、[統計情報]タブの[電話番号を利用した送信メッセージ(PnP)]を選択します。「LINE通知メッセージ」項目に送信されたメッセージの数が表示されます。
# APIで取得する
# LINE通知メッセージとAPIに関する補足事項
- 「LINE通知メッセージが届きました」メッセージについて
- LINE通知メッセージの受信への同意方法
- LINE通知メッセージの受信への同意を行っていない際に送信されたメッセージについて
- LINE公式アカウントをブロックしているユーザーに対するLINE通知メッセージAPIのリクエストについて
- LINE通知メッセージAPIのリクエストが成功したが、メッセージが送信されない場合について
- LINE公式アカウントと友だちではないユーザーにLINE通知メッセージを送信した際の友だち追加やブロックについて
- LINE公式アカウントと友だちではないユーザーにLINE通知メッセージを送信した際のリッチメニューの表示について
- LINE通知メッセージの利用料金の請求対象について
# 「LINE通知メッセージが届きました」メッセージについて
LINE通知メッセージの送信時に「LINE」という名前のLINE公式アカウント(システムアカウント)から以下のメッセージが送信されます。このメッセージは、LINE通知メッセージ送信するたびに、必ず送信されるメッセージです。LINE通知メッセージの送信者は、このメッセージが送信されないようにしたり、送信される回数を減らしたりする制御を行うことはできません。
LINE通知メッセージAPIで送信対象として指定したユーザーが、LINE通知メッセージの送信元であるLINE公式アカウントをブロックしていた場合は、LINE通知メッセージは送信されず、「LINE」システムアカウントからの「LINE通知メッセージが届きました」メッセージについても送信されません。
# LINE通知メッセージ受信への同意方法
実際にLINE通知メッセージを受信した際の他に、LINEアプリの [設定] > [プライバシー管理] > [情報の提供] > [LINE通知メッセージ] からもLINE通知メッセージの受信に同意(もしくは拒否)できます。
LINE通知メッセージの受信設定には、以下の3つの状態があります。
状態 | 説明 |
---|---|
同意(オン) | LINE通知メッセージを受信します。 |
拒否(オフ) | LINE通知メッセージの受信を拒否しています。LINE通知メッセージは送信されません。 |
未設定 | 同意も拒否もしていない状態です。LINE通知メッセージ受信時に、LINE通知メッセージの受信への同意を求めるメッセージが送信されます。
|
# LINE通知メッセージの受信への同意を行っていない際に送信されたメッセージについて
状態 | 説明 |
---|---|
拒否(オフ) | リクエストされたLINE通知メッセージは送信されず、削除されます。 |
未設定 | LINE通知メッセージの受信設定の受信後、24時間以内にLINE通知メッセージの受信に同意した場合は、メッセージは送信されます。24時間以内にLINE通知メッセージ受信同意を行わない場合、リクエストされたメッセージは送信されず削除されます。 |
# LINE公式アカウントをブロックしているユーザーに対するLINE通知メッセージAPIのリクエストについて
LINE公式アカウントをブロックしているユーザーに対して、LINE通知メッセージAPIでLINE通知メッセージの送信をリクエストした場合、HTTPステータスコード200
のレスポンスが返ります。ただしこの場合、実際にはLINE通知メッセージの送信は行われず、Webhookの配信完了イベントも送られません。
# LINE通知メッセージAPIのリクエストが成功したが、メッセージが送信されない場合について
LINE公式アカウントをブロックしていないユーザーに対して、LINE通知メッセージAPIをリクエストし成功した(HTTPステータスコード200
のレスポンスを受信した)が、実際にユーザーに対してLINE通知メッセージが送信されない場合、下記のような原因が考えられます。
- LINE通知メッセージAPIリクエスト時に指定した電話番号に紐づくユーザーは、LINE通知メッセージの受信設定が未設定であり、LINE通知メッセージの受信設定の受信した際に、「拒否」に変更した。
- LINE通知メッセージAPIリクエスト時に指定した電話番号に紐づくユーザーは、LINE通知メッセージの受信設定が未設定であり、LINE通知メッセージの受信設定の受信した際に設定を行わずに放置した。
- LINE通知メッセージAPIリクエスト時に指定した電話番号に紐づくユーザーは、SMS認証が必要な状態であったが、電話番号の認証メッセージを受信した際に SMS 認証を行わずに放置した。
# LINE公式アカウントと友だちではないユーザーにLINE通知メッセージを送信した際の友だち追加やブロックについて
LINE通知メッセージ送信元のLINE公式アカウントと友だちではないユーザーが、LINE通知メッセージを受信した際には、そのLINE公式アカウントを友だち追加するかどうか選択できます。友だち追加を行った場合、フォローイベントが送信されます。ブロックを行った場合、フォロー解除イベントが送信されます。LINE通知メッセージを利用する場合、フォローイベントを受信したことがないユーザーからフォロー解除イベントが送信される場合があります。
# LINE公式アカウントと友だちではないユーザーにLINE通知メッセージを送信した際のリッチメニューの表示について
LINE公式アカウントと友だちではない場合であっても、LINE Official Account Managerもしくは、Messaging APIで設定したデフォルトのリッチメニューは表示され、利用できます。ただし、友だちではないユーザーに対してMessaging APIで設定するユーザー単位のリッチメニューは表示されず、利用できません。
# LINE通知メッセージの利用料金の請求対象について
LINE通知メッセージでは、実際にユーザーに送信が行われたメッセージのみが利用料金の請求対象となります。
実際にユーザーに送信が行われたメッセージの数は、LINE Developersコンソールで取得する方法や、APIで取得する方法で確認できます。