前回はOneSignalを使ったデバイスへのプッシュ通知のやり方を載せました。
今回は特定のユーザーにのみ送る方法をメモしていきたいと思います。
さて、前回はaxiosを使って何の変哲のない文章をプッシュ通知として送ったと思いますが
この状態だと、1人のユーザーがプッシュ通知を受け取った時に同時にアプリをインストールしてる
全てのユーザーに対してプッシュ通知を送れてしまいます。
この場合はcordova.OneSignal.Pluginの中に含まれているgetIdメソッドを使ってそのユーザーだけのid
を取得することでこのような事態を回避することができます。
window.plugins.OneSignal.getIds(function(ids) { console.log('getIds: ' , ids); const token = ids.pushToken; const id = ids.userId; console.log("idだよ"+id); }); //idの中身 j0mb7439-36ec-4137-80e2-58ghuaeb4554
tokenも取得できるのですが今回使うのはidなので省略します。
このincluded_segmentsの部分を
var message = { app_id: "70e59150-f90c-4a4c-97c0-fc000a347a7d", included_segments: ["All"], //これだと全てのユーザーに送れてしまう contents: {"en": "let,s Enjoy!!"} };
このようにします。
var message = { app_id: "70e59150-f90c-4a4c-97c0-fc000a347a7d", //include_player_idsに変更。 include_player_ids: ["j0mb7439-36ec-4137-80e2-58ghuaeb4554"], contents: {"en": "let,s Enjoy!!"} };
これでユーザー別に送ることができます。・・・アプリらしい機能が揃ってきました。
これ有料だったらどうしようかなと考えましたが杞憂でしたね。