Onesignal推送通知高级定位

时间:2015-09-22 17:09:39

标签: push-notification onesignal

我使用onesignal来处理我的网络和离子应用程序的pish通知。我的问题是

  

我可以使用server rest api设置用户细分吗?

我想让我的用户能够订阅特定事件(频道)以限制他们收到的推送通知。

示例

user1 subscribed to group I'd (1,3,8)
user2  groups(5,8,11)
User3 groups(12,13)

当第8组发生事件时。

如何向订阅了第8组的所有用户发送推送通知? - 在上面的例子中,通知应发送给user1& user2但不是3。

2 个答案:

答案 0 :(得分:12)

OneSignal目前不支持通过API动态创建细分,但有更好的方法可以满足您的需求。

您可以使用标记功能将自定义数据分配给用户,然后您可以向匹配特定标记的用户发送通知。标签通常是通过调用应用中的SetTags方法设置的,但也可以通过OneSignal API进行设置。

例如,在您的情况下,您将为每个用户分配以下标记:

User1 Tags: group1=true,group3=true,group8=true
User2 Tags: group5=true,group8=true,group3=true
User3 Tags: group12=true,group13=true

接下来,通过OneSignal API,您可以使用"标签"字段仅向符合一个或多个标记的用户发送通知。

您还可以为信息中心上的每个代码创建一个细分,然后通过API或通过信息中心指定哪些细分(以及标签)应该接收您的通知。

答案 1 :(得分:4)

@Gdeglin概述的方法存在的问题是,您需要在服务器和OneSignal上管理您的群组信息。如果你有两个事实来源,就像群体一样复杂和动态,你必然会遇到麻烦。

例如,如果删除第8组会发生什么?除了更新您自己的数据库之外,您还需要使用API​​来更新属于第8组的所有OneSignal用户。想象一下,该组包含1000个用户。呸。

不添加groupname标记,而是添加" userId"标记到向OneSignal注册的每个用户(播放器)。现在,当一个组发生变化时,无法使用OneSignal更新任何内容。

权衡是向组中的每个人发送消息需要对OneSignal进行N API调用,而不是只调用一个。看起来可以在单个API调用中提供多个标记匹配,但不清楚它的扩展程度。