EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

LINEのプッシュ通知について

前回の記事で「LINE公式アカウント」の統合について紹介しましたが、今回はプッシュ通知についてまとてみたいと思います。

eatsmart.hatenablog.com

プッシュ通知とは

プッシュ通知とは、 アプリを起動していない状態でもメッセージがユーザーのスマートフォンに通知される為、他のメッセージ送信手段に比べ読まれる確率が高いです。

プッシュ通知のメリット

メールでメッセージを送信すると、メールボックスに溜まって多くのメッセージの中に埋もれてしまったり、意図せぬフィルター制御で未読状態のままとなってしまう可能性がありますが、プッシュ通知の場合スマートフォンに通知が届けば、リアルタイムで ユーザーに気付いてもらえる可能性が高まり開封率の向上が期待できます。

LINE経由のプッシュ通知について

LINE経由のプッシュ通知を行うには、LINEが提供しているMessaging APIを利用して行います。また、プッシュ通知の送信タイプは以下のとおりです。

1人のユーザー

1人のユーザー、グループ、またはトークルームに、任意のタイミングでプッシュ通知を送信するAPIです。

複数のユーザー

複数のユーザーに、任意のタイミングでプッシュ通知を送信するAPIです。
※グループまたはトークルームにメッセージを送ることはできません。

公式アカウントと友だちになっているすべてのユーザー

LINE公式アカウントと友だちになっているすべてのユーザーに、任意のタイミングでプッシュ通知を送信します。

LINE経由のプッシュ通知を試してみる

今回は、curlコマンドでMessaging APIを呼び出して、1人のユーザーへのプッシュ通知を試してみました。 Line Developerサイトには、各種解説やサンプルが多数存在しており参考になりました。送信までの流れを記載します。

Lineプッシュ通知送信までの流れ

1)Line Developerで「LINEログイン」チャンネル開設

https://developers.line.biz/ja/docs/line-login/getting-started/

2)Line Developerで「Messaging API」チャンネル開設

この時、Line Offcial Account Manager側とLINEアカウント連携しておくと、Line Offcial Account Manager側にアカウントが自動で作成されます。

https://developers.line.biz/ja/docs/messaging-api/getting-started/

3)LINE公式アカウントをLINEログインのチャネルにリンクする

これを行っておくと、ログイン連携でアプリの利用同意を行った後に、公式アカウントを友達追加するオプションが表示されます。
表示方法は2種類存在していて、アプリの利用同意画面に組み込む形式と、アプリの同意画面表示後に友達追加を別画面で表示する方法が存在します。
また、APIの呼び出し方法は以下のLINEログインの認可APIbot_promptクエリパラメータを付加します。

https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id={CHANNEL_ID}&redirect_uri={CALLBACK_URL}&state={STATE}&bot_prompt={BOT_PROMPT}&scope={SCOPE_LIST}

また、bot_promptクエリパラメータに以下の値のいずれかを設定します。
normal:
アプリの利用条件の同意画面に、LINE公式アカウントを友だち追加するオプションを追加します。
aggressive:
アプリの利用条件の同意画面の後に、LINE公式アカウントを友だち追加するかどうか確認する画面を開きます。

https://developers.line.biz/ja/docs/line-login/web/link-a-bot/

4)Line Developerの「Messaging API」チャンネルでアクセストークンを発行する

プッシュ通知を呼び出す際に、チャンネルアクセストークンが必要な為、 「Messaging API」チャンネルの「チャンネル基本設定」タブで、アクセストークンを発行します。

5)curlでプッシュ通知を検証する
curl -v -X POST https://api.line.me/v2/bot/message/push \
-H 'Content-Type:application/json' \
-H 'Authorization: Bearer {チャンネルアクセストークン}' \
-d '{
    "to": "送信先ID(今回はuserId)",
    "messages":[
        {
            "type":"text",
            "text":"Hello, world1"
        },
        {
            "type":"text",
            "text":"Hello, world2"
        }
    ]
}'

https://developers.line.biz/ja/reference/messaging-api/#send-push-message

(補足)
最初、ログイン連携だけして、公式アカウントを友達追加していない状態でプッシュ通知を行っていましたが、その状態ではメッセージが届きまん。
そもそも公式アカウントを友達追加しておかないと、トークに公式アカウントが追加されない為、メッセージも届かくわけないですよね。

最後に

今回はプッシュ通知を試してみましたが、Messaging APIはプッシュ通知以外にもボットを活用した双方向の通信が行える様なのでその辺りの機能も試していきたと思います。