イベント駆動型プッシュ¶
利用者の操作などアプリ内で発生したイベントをきっかけとして利用者にプッシュ通知を配信することができます。
利用できるプラン
イベント駆動型プッシュは有料プランでご利用可能です。
イベント駆動型プッシュできること¶
- イベント発生から指定の時間経過後(30日以内)にプッシュ通知を配信
- 変数を使ってメッセージのパーソナライズ
変数の利用
管理サイトでメッセージを作成する際に変数を適用したい箇所に"${}"を使います。
例: 「${name}さまへお得な情報をお届け!!」
アプリから、変数名と値の組み合わせを指定すると変換されてメッセージが配信されます。
例:アプリから「変数名:name 値:鈴木一郎」を指定して配信をリクエスト
「配信されるメッセージ: 鈴木一郎さまへお得な情報をお届け!!」
配信までの流れ¶
(管理サイトで行うこと)
1. 任意のイベントを作成
2. 配信するメッセージを作成して、作成したイベントを紐づける
3. 作成したメッセージを承認する
(アプリ側で行うこと)
1. SDKを使用して配信をリクエスト(後述)
メッセージ配信のリクエスト¶
// Class RFApp
static func postMessage(events: [String]?,
variables:[String:String]?,
standbyTime: NSNumber?,
completion: @escaping (_ result: RFResult, _ eventPostIds:[String]?) -> Void)
// Class RFApp
+ (void)postMessage:(nonnull NSArray*)events
variables:(nullable NSDictionary<NSString*, NSString*>*)variables
standbyTime:(nullable NSNumber*)standbyTime
completion:(nullable void (^)(RFResult* _Nonnull result, NSArray<NSString*>* _Nonnull eventPostIds))completion
パラメータ | 内容 |
---|---|
events | 管理サイトで作成したメッセージに紐づいたイベントの配列。 |
variables | 変数。変数名とその値のDictionaryセット。 |
standbyTime | イベント発生からプッシュ通知配信までの待機時間(分)。最大43200分(30日間)まで指定可能。※未指定の場合は管理サイトで設定した値が適用されます。 |
completion | 処理完了時に呼び出されるハンドラ。 |
イベント投稿ID
メッセージ配信リクエストが成功すると処理完了ハンドラでイベント投稿ID(eventPostIds)を取得できます。
この値を利用して、メッセージ配信リクエストをキャンセルすることができます。
イベントに紐づいたメッセージが複数ある場合は、その数の分だけ応答されます。
待機時間を0にした場合は、同IDは応答されません。
実装例¶
Swift
let events : [String] = ["reserved"]
let variables : [String : String] = ["name": "鈴木一郎", "shop": "◯△商店"]
// メッセージ配信をリクエスト
RFApp.postMessage(events: events, variables: variables, standbyTime: 10) { result, eventPostIds in
if result.result {
// 成功
print("メッセージ配信リクエストに成功")
} else {
// 失敗
print(result.message + "(code:\(result.code))")
}
}
Objective-C
NSArray* events = @[@"reserved"];
NSDictionary* variables = @{
@"name" : @"鈴木一郎",
@"shop" : @"◯△商店"
};
[RFApp postMessage:events variables:variables standbyTime:standbyTimeValue
completion:^(RFResult * _Nonnull result, NSArray<NSString *> * _Nonnull eventPostIds) {
if (result.result) {
NSLog(@"メッセージ配信リクエストに成功");
} else {
NSLog(@"%@(code:%ld)", result.message, (long)result.code);
}
}];
配信のキャンセル¶
配信リクエストを行ったメッセージが待機時間内であればキャンセルを行うことができます。 ※待機時間なし、待機時間経過後のメッセージはキャンセルできません。
// Class RFApp
static func cancelPosting(_ eventPostId: String, completion: @escaping (_ result: RFResult) -> Void)
// Class RFApp
+ (void)cancelPosting:(nonnull NSString*)eventPostId completion:(nullable void (^)(RFResult* _Nonnull result))completion;
パラメータ | 内容 |
---|---|
eventPostId | イベント投稿ID。メッセージ配信リクエストの応答で取得できる。 |
completion | 処理完了時に呼び出されるハンドラ。 |
実装例¶
Swift
let postId = "90793c40-9b20-4526-a898-4bc4d5cd5612"
RFApp.cancelPosting(postId) { result in
if (result.result) {
print("メッセージ配信キャンセルに成功")
} else {
print(result.message + "(code:\(result.code))")
}
}
Objective-C
NSString* postId = @"90793c40-9b20-4526-a898-4bc4d5cd5612"
[RFApp cancelPosting:postId completion:^(RFResult * _Nonnull result) {
if (result.result) {
NSLog(@"メッセージ配信キャンセルに成功");
} else {
NSLog(@"%@(code:%ld)", result.message, (long)result.code);
}
}];