BrazeからユーザーにLINEのプッシュメッセージを送ってみる

2022.03.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

BrazeではcampaignかCanvasからメールやプッシュ通知、アプリ内メッセージなど、さまざまな方法でユーザーにメッセージを送信することが可能 となっていますが、 Webhookを使うことによって何かしらのイベントの後、外部のシステムにデータを送信できます。

現状、世の中にあるメッセンジャーアプリ(Facebook MessengerやWhatsAPPやLINE)に対応するチャンネルがなかったので、これを行う場合はWebhookを利用するとよさそうです。

今回はLINEにキャンペーンの内容をメッセージ送信する というケースを試してみようと思います.

LINEにはMessaging APIという機能があり、これを使用することでユーザーに直接メッセージを送信できます(プッシュメッセージ)。

BrazeのWebhookでLINEのMessaging APIを叩いてユーザーにメッセージを送信します。

前提

LINEログイン等、アプリケーションとLINEの連携ができるという前提で行っていきます。

LINE側の準備として、

は行なっておきます(リンクを参照)

Braze側の準備ですが、LINEにプッシュメッセージを送るにはLINEのuserIdが必要になってきます。 これをユーザー属性として保存しておかないといけません。

Brazeのユーザー属性にLINEのuserIdを保存

LINEログインを組み込むと、アプリケーション側でLINEのuser_idがわかるので、それをBrazeのユーザー属性に保存するケースを考えてみます。

Brazeではカスタム属性をユーザーに付与することができるので、これを利用します。

WebのSDKから設定する場合、

appboy.getUser().setCustomUserAttribute(
  "line_user_id" //YOUR_ATTRIBUTE_KEY_STRING,
  "Ud0da......." //YOUR_INT_VALUE
);

getUser().setCustomUserAttribute で設定できます。

ユーザーが初めてLINEログインした時に上記コードを実行して登録することができますね。

他には、ユーザーインポート機能を使って設定することも可能です。

BrazeのAPIを利用して保存できたり、CSVインポートにも対応しています。

カスタム属性を追加すると、上記のようにBrazeの管理コンソールから設定された内容が確認できます。

このカスタム属性に設定したLINEのuser_idを使ってキャンペーンのメッセージを送っていきます。

BrazeでWebhookのキャンペーンを作成

今回はキャンペーン経由でメッセージを送信します。

キャンペーン->Create Campaign->Webhookをクリックします。今回はシングルチャネルにします。

キャンペーン名を入力します。

Webhookバリアントは初期で設定されているものを使用しても大丈夫ですし、新規で作成しても大丈夫です。

事前に設計されたWebhookテンプレートでは、初めてWebhookの設定を作成するので空白のテンプレートを選択します。

作成タブ

プッシュメッセージ送信の仕様に沿って WEBHOOK URLと、そのURLに対して送信するデータ(要求本文)を設定していきます

WEBHOOK URLは https://api.line.me/v2/bot/message/push となります。

要求本文ですが、

  • to: (必須) 送信先のID(Webhookイベントオブジェクトで返される、userId、groupId、またはroomIdの値を使用)
  • messages: (必須) 送信するメッセージ
  • notificationDisabled: メッセージ送信時に、ユーザーに通知するかしないか(デフォルトはfalse)
{
    "to": "U4af4980629...",
    "messages":[
        {
            "type":"text",
            "text":"Hello, world1"
        }
    ]
}

このようなjson形式の本文を送信する必要があります。

toの部分ですが、カスタム属性に保存した値を使っていくので、

{{custom_attribute.${line_user_id}}}

を指定します。

生のテキストを使用すると、Liquidを使った構文が使用できます

テキストエリアに {{ を入力すると、候補が入力で補完されて表示されるので、カスタム属性を使用する場合は custom_attribute.${カスタム属性名} となります。

カスタム属性名も入力で補完されるので対応するものを選択すれば大丈夫でした。

本文例)

{
    "to": "{{custom_attribute.${line_user_id}}}",
    "messages":[
        {
            "type":"text",
            "text":"[60%オフ] LINE会員様だけの特典。"
        }
    ]
}

設定タブ

設定タブをクリックしてリクエストヘッダーを設定していきます。

プッシュメッセージ送信のリクエストヘッダーは、

  • Content-Type: (必須) application/json
  • Authorization: (必須) Bearer {channel access token}
  • X-Line-Retry-Key: リトライキー。任意の方法で生成した16進表記のUUID

が必要です。

channel access tokenは LINEチャネルの設定画面のMessaging API settings で作成できます。

コピーして設定します。

テストタブ

テストタブを開いて、設定した内容を実際にテストできます。

ユーザーを検索して一人設定し、テスト送信ボタンを押すと実際に実行されます。テストユーザーで実行しましょう。

上記のように結果がわかります。

残りの設定

Webhookの設定が終わったら、あとは残りのキャンペーン設定を行なっていくだけです。

キャンペーンまたはキャンバスの残りの部分を作成する を参照。

キャンペーンの作成が完了したら、その詳細を確認し、保存してキャンペーンを開始します。

届くかな?

正しく設定できているとLINEでメッセージを受け取れるはずです。

実際に届いた時のスクショとキャンペーンの分析画面

最後に

BrazeでLINEにメッセージを送るキャンペーンを作成してみました。

今回は新規作成で作っていきましたが、Webhookではテンプレートという機能があって、一度作ったものを使いまわせます。 頻繁に使用するものはテンプレートにしたほうが圧倒的に便利ですので、これを活用していくことになると思います。

channel access tokenなどの使い回せる値も保持しておけますし、LINEのチャネルごとにテンプレートを作ることもできますね。 これはまた今度やってみようかと思います。

参考