信号推送通知先进的目标



我使用onessignal来处理我的web和ionic应用程序的pish通知。我的问题是

可以使用服务器rest api设置用户段吗?

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

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

当事件发生在第8组时

如何向订阅组8的所有用户发送推送通知?在我上面的例子中,通知应该发送到user1 &3.

(更新:这个答案现在已经过时了,因为onessignal现在支持动态创建段,以及多年来引入的大量附加功能)

onessignal目前不支持通过API动态创建段,但是有一个更好的方法来做你需要的。

您可以使用标签特性将自定义数据分配给用户,然后您可以向匹配特定标签的用户发送通知。标签通常通过调用应用程序中的SetTags方法来设置,但它们也可以通过onessignal API来设置。

例如,在您的示例中,您将为每个用户分配以下标记:
User1 Tags: group1=true,group3=true,group8=true
User2 Tags: group5=true,group8=true,group3=true
User3 Tags: group12=true,group13=true

接下来,通过onessignal API,您可以使用"标签"字段,只向匹配一个或多个标签的用户发送通知。

您还可以为仪表板上的每个标签创建一个段,然后通过API或仪表板您可以指定哪些段(因此标签)应该接收您的通知。

@Gdeglin概述的方法的问题是,您需要在服务器和onessignal的服务器上管理您的组信息。对于像群体这样复杂而动态的事物,当你有两个真理来源时,你一定会遇到麻烦。

例如,如果组8被删除,会发生什么?除了更新自己的数据库之外,还需要使用API来更新属于第8组的所有onessignal用户。假设该组包含1000个用户。恶心。

而不是添加组名标签,添加一个"userId"标签,每个用户(玩家)注册与onessignal。现在,当一个组发生变化时,onessignal没有什么需要更新的。

权衡的是,向组中的每个人发送消息需要N个API调用onessignal,而不是仅仅一个。看起来在单个API调用中提供多个标记匹配是可能的,但是不清楚它的可伸缩性如何。

最新更新