イベント駆動型プッシュ¶
利用者の操作などアプリ内で発生したイベントをきっかけとして利用者にプッシュ通知を配信することができます。
利用できるプラン
イベント駆動型プッシュは有料プランでご利用可能です。
イベント駆動型プッシュできること¶
- イベント発生から指定の時間経過後(30日以内)にプッシュ通知を配信
- 変数を使ってメッセージのパーソナライズ
変数の利用
管理サイトでメッセージを作成する際に変数を適用したい箇所に"${}"を使います。
例: 「${name}さまへお得な情報をお届け!!」
アプリから、変数名と値の組み合わせを指定すると変換されてメッセージが配信されます。
例:アプリから「変数名:name 値:鈴木一郎」を指定して配信をリクエスト
「配信されるメッセージ: 鈴木一郎さまへお得な情報をお届け!!」
配信までの流れ¶
(管理サイトで行うこと)
1. 任意のイベントを作成
2. 配信するメッセージを作成して、作成したイベントを紐づける
3. 作成したメッセージを承認する
(アプリ側で行うこと)
1. SDKを使用して配信をリクエスト(後述)
メッセージ配信のリクエスト¶
// Class RichFlyer.RFPluginScript
public static void PostMessage(string[] events, Dictionary<string, string> variables, int? standbyTime, RFPostMessageCallback onResult)
パラメータ | 内容 |
---|---|
events | 管理サイトで作成したメッセージに紐づいたイベントの配列。 |
variables | 変数。変数名とその値のDictionaryセット。 |
standbyTime | イベント発生からプッシュ通知配信までの待機時間(分)。最大43200分(30日間)まで指定可能。※nullの場合は管理サイトで設定した値が適用されます。 |
onResult | 結果リスナー |
結果応答リスナ¶
処理の結果とイベント投稿IDを渡します。
public delegate void RFPostMessageCallback(bool result, long code, string message, string[] eventPostIds);
パラメータ | 内容 |
---|---|
result | 成否 |
code | エラーコード |
message | エラーメッセージ |
eventPostIds | イベント投稿ID |
イベント投稿ID
メッセージ配信リクエストが成功すると処理完了リスナでイベント投稿ID(eventPostIds)を取得できます。
リクエスト後、待機時間内であれば、この値を利用してメッセージ配信リクエストをキャンセルすることができます。
イベントに紐づいたメッセージが複数ある場合は、その数の分だけ応答されます。
待機時間を0にした場合は、同IDは応答されません。
エラーコード¶
エラーコード | 内容 | 予想される原因 |
---|---|---|
401 | 認証失敗 | 認証トークンが不正か、期限切れの可能性があります。 アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。 |
404 | サービス不明 | 管理サイトで取得したSDK実行キーが指定されていない可能性があります。 SDK実行キーの確認方法 |
404 | イベント名不明 | 指定したイベント名に紐づく投稿が管理サイトで作成されていない可能性があります。 |
600 | 通信エラー | RichFlyerサーバへの接続に失敗しています。通信環境の悪化等が考えられます。 |
601 | デバイストークン不明 | OSから発行されるデバイストークンがRichFlyer SDKに渡されていないか失われた可能性があります。 アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。 |
602 | 認証トークン不明 | デバイストークンの登録に失敗している可能性があります。 アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。 |
603 | 認証トークン不明 | デバイストークンの登録に失敗している可能性があります。 アプリの再起動または requestAuthorization を呼ぶことで解消する可能性があります。 |
604 | SDK実行キー不明 | SDK実行キーが指定されていない可能性があります。 |
実装例¶
実装例
string[] events = new string[] { "event1", "event2" };
Dictionary<string, string> variables = new Dictionary<string, string>();
variables.Add("name", "Suzuki");
variables.Add("item", "Books");
RFPluginScript.PostMessage(events, variables, 300,
(bool result, long code, string message, string[] eventPostIds) => {
Debug.Log($"Post Message. result:{result}, code:{code}, message:{message}");
if (eventPostIds != null)
{
foreach (string eventPostId in eventPostIds)
{
Debug.Log($"EventPostId: {eventPostId}");
}
}
});
配信のキャンセル¶
配信リクエストを行ったメッセージが待機時間内であればキャンセルを行うことができます。
※待機時間なし、待機時間経過後のメッセージはキャンセルできません。
// Class RichFlyer.RFPluginScript
public static void CancelPosting(string eventPostId, RFPostMessageCallback onResult)
パラメータ | 内容 |
---|---|
eventPostId | イベント投稿ID。メッセージ配信リクエストの応答で取得できる。 |
onResult | 結果リスナー |
実装例¶
実装例
string eventPostId = "00000000-1111-2222-3333-444444444444";
RFPluginScript.CancelPosting(eventPostId, (bool result, long code, string message, string[] eventPostIds) =>
{
Debug.Log($"Cancel Message. result:{result}, code:{code}, message:{message}");
});