我正在使用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 回答
OneSignal目前不支持通过API动态创建细分,但有更好的方法可以满足您的需求 .
您可以使用标记功能将自定义数据分配给用户,然后您可以向匹配特定标记的用户发送通知 . 标签通常通过调用应用中的SetTags方法来设置,但也可以通过OneSignal API进行设置 .
例如,在您的情况下,您将为每个用户分配以下标记:
接下来,通过OneSignal API,您可以使用“标记”字段仅向符合一个或多个标记的用户发送通知 .
您还可以在仪表板上为每个标签创建一个段,然后通过API或通过仪表板指定哪些段(以及标签)应该接收您的通知 .
@Gdeglin概述的方法存在的问题是,您需要在服务器和OneSignal上管理组信息 . 如果你有两个事实来源,就像群体一样复杂和动态,你一定会遇到麻烦 .
例如,如果删除组8会发生什么?除了更新您自己的数据库之外,您还需要使用API来更新属于Group 8的所有OneSignal用户 . 想象一下,该组包含1000个用户 . 呸 .
不是添加groupname标签,而是向在OneSignal注册的每个用户(Player)添加“userId”标签 . 现在,当一个组发生变化时,OneSignal无法更新任何内容 .
权衡是向组中的每个人发送消息需要对OneSignal进行N API调用,而不是只调用一个 . 看起来可以在单个API调用中提供多个标记匹配,但目前尚不清楚它的扩展程度 .