首页 文章

Onesignal推送通知高级定位

提问于
浏览
10

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

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

我想让我的用户能够订阅特定事件( Channels )来限制他们收到的推送通知 .

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

当事件发生在第8组时 .

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

2 回答

  • 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或通过仪表板指定哪些段(以及标签)应该接收您的通知 .

  • 4

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

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

    不是添加groupname标签,而是向在OneSignal注册的每个用户(Player)添加“userId”标签 . 现在,当一个组发生变化时,OneSignal无法更新任何内容 .

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

相关问题