如何使用One Signal管理每日奖金推送通知



我们有一个按日期工作的每日奖金系统。在您当地时间的每一次约会中,您都有权获得每日1笔奖金。例如:如果你在7月12日获得每日奖金,你将有权在7月13日获得下一笔奖金,而不取决于时间。

我想为用户创建推送通知,但我无法解决如何做到这一点?

我以前的尝试:

1-每当玩家获得每日奖金时,我都会在她当地时间的第二天晚上8点创建通知。

问题:如果玩家在第二天晚上8点之前获得奖金,我无法删除之前创建的通知,因为Unity没有删除功能。我也尝试过collapse_id来处理它,但collapse_d并没有停止发送通知,只是在收到通知时用最后一个更新通知信息。

2-我创建了一个标签,这是奖金领取的日期,有点像"2018-07-12"。我尝试创建一个用户组,将这些标签与"今天的日期"进行比较

问题:没有像今天这样的日期,你必须输入它作为值,所以你可以通过输入控制台更改日期和发送通知来做到这一点,你需要每天都这样做。

如何创建这样的通知系统?

谢谢。Hasan

OneSignal有两个选项。

1-如果用户已经获得奖金,您可以取消通知。

你可以使用这样的东西来发出取消请求:

string url = ""https://onesignal.com/api/v1/notifications/"" + notificationId.ToString() + ""?app_id="" + s_appId;
WebRequest request = WebRequest.Create(url);
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
request.Method = ""DELETE"";
request.GetResponse();

2-如果你在自己的CRM或数据库上跟踪这一点,那么你可以使用API将OneSignal PlayerID保存到数据库和目标设备。

首先,使用SDK获取playerID:https://documentation.onesignal.com/docs/unity-sdk#section--getpermissionsubscriptionstate-

然后,您可以将此数据发送到您的CRM或数据库:https://documentation.onesignal.com/docs/internal-database-crm​然后,您可以在创建通知REST API POST调用上使用include_player_idshttps://documentation.onesignal.com/reference#section-发送到特定设备

如果您想使用标记选项,您应该使用时间戳,然后使用API和过滤器作为目标https://documentation.onesignal.com/reference#section-根据过滤器发送给用户

您不应该将OneSignal REST API密钥放在应用程序中。这需要保密。

最新更新