我打算向目标用户发送推送通知。我知道这可以通过播放器ID进行定位来实现。但是,采用这种方法需要我的数据库引入OneSignal的依赖,这是我试图避免的。
我在想是否可以通过用户名定位玩家。我的意思是当应用程序初始化它时会更新OneSignal说'我的用户名是user1',当服务器发出通知时它可以定位'user1'(再次,不使用玩家ID方法)。
我能想到的最接近的方式是标记用户可以使用用户名注册的位置,因为标记和服务器可以使用标记来定位用户。但是从文档看来,这种方法似乎只能同时针对200个用户,这对我来说也是不可行的 - 我可能会向成千上万的用户发送。
有什么建议吗?
答案 0 :(得分:1)
正如您所建议的,标签是实现此目的的最佳方式,无需存储OneSignal ID。
虽然一次限制为200次,但您可以进行多次API调用以提供给更多的用户。 OneSignal此方法的平均API响应时间低于50毫秒,因此,如果您按顺序进行API调用,此方法将允许您达到每秒4,000个用户。
答案 1 :(得分:0)
OneSignal是Android上Firebase云消息传递或FCM(以前的Google云消息传递或GCM)的包装器。如果您不想依赖OneSignal内部设备ID(或玩家ID),您仍然可以直接使用FCM / GCM注册ID (也称为推送令牌)来定位具有通知的用户。但在这种情况下,您仍然需要在服务器上存储新的ID(而不是使用您自己的),更重要的是,您必须自己处理FCM / GCM令牌的复杂性(管理错误,规范等)。
更好的解决方案是使用第三方,例如Batch.com (披露:我是联合创始人)。我们允许开发人员提供自己的用户ID(称为自定义用户ID ,您可以set it from the app code),然后将其与我们的Transactional API一起使用,将推送通知发送到一个或更多用户(收件人可以是推送令牌,批量安装ID或您自己的用户/自定义ID)。