10

我正在使用 onesignal 来处理我的 web 和 ionic 应用程序的 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。

4

2 回答 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 或仪表板您可以指定哪些分段(以及标签)应该接收您的通知。

于 2015-09-22T18:27:18.753 回答
4

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

例如,如果第 8 组被删除会怎样?除了更新您自己的数据库之外,您还需要使用 API 来更新属于第 8 组的所有 OneSignal 用户。假设该组包含 1000 个用户。呸。

无需添加组名标签,而是向使用 OneSignal 注册的每个用户(播放器)添加“userId”标签。现在,当一个组发生变化时,OneSignal 就没有什么可以更新的了。

权衡是向组中的每个人发送消息需要对 OneSignal 的 N 次 API 调用,而不仅仅是一次。看起来可以在单个 API 调用中提供多个标签匹配,但尚不清楚其扩展性如何。

于 2016-11-16T15:15:16.840 回答