getUser 通知订阅 WORK LIGHT 推送通知中的用户 ID

Posted

技术标签:

【中文标题】getUser 通知订阅 WORK LIGHT 推送通知中的用户 ID【英文标题】:userID in getUserNotificationSubscription WORKLIGHT Pushnotification 【发布时间】:2014-03-19 06:09:05 【问题描述】:

我正在我的 IBM worklight 项目中实现推送通知。 developerworks 中的示例代码使用一些身份验证挑战者机制来完成订阅。我以某种方式使用相同的身份验证挑战来进行订阅(尽管我的应用程序设计不需要这样做)。示例代码中没有写入通知调用的实际触发器。

我从网络资源中发现需要使用 WL.Server.getUserNotificationSubscription(eventSourceName, userId) 来获取订阅的用户详细信息。但是我不知道如何在这里获取 userId 详细信息?请让我知道这里的 userId 是什么以及如何获取它的值。

【问题讨论】:

【参考方案1】:

这里是关于WL.Server.getUserNotificationSubscripion的信息:

getUserNotificationSubscription:

getUserNotificationSubscription(eventSource, userId) 返回一个 用户的订阅对象。返回一个订阅对象 具有指定ID的用户到指定的事件源。

参数: 事件源 - 强制。包含事件源名称的字符串。 用户 ID - 必填项。在登录过程中创建的包含用户 ID 的字符串。用户ID可以通过调用获取 WL.Server.getActiveUser。

返回: 该方法返回一个包含用户 ID 和可变订阅状态的订阅对象。 示例:userId: 'bjones', state: numCoupons: 3

注意: 所有订阅对象字段都是只读的,用户订阅状态除外。您可以在您的 javascript 代码,然后必须使用 save 方法将其保存到 IBM® Worklight® 数据库。

如您所见,userId 是在登录和身份验证过程中创建的特定用户。 Worklight 提供了一个服务器端 API WL.Server.getActiveUser(),它允许您检索当前用户。

关于您的其他陈述“在示例代码中未编写通知调用的实际触发器。” Worklight 实际上在示例项目中提供了一个 jar 文件,允许您触发通知。以下是有关此后端仿真的更多信息:

如果您还有其他问题,请告诉我。

【讨论】:

感谢您的回答。我仍然对为什么需要通过登录和身份验证过程进行推送通知有疑问。我的应用程序不需要登录。对此的任何想法都将帮助我更好地理解身份验证挑战者的需求。 因此,为了了解向您发送推送通知的用户,需要具有某种用户结构。如果您不需要用户登录,您仍然需要某种结构来指定用户。我会指出另一篇文章,它显示了使用持久 cookie 来完成此操作的机制:***.com/questions/20542930/…

以上是关于getUser 通知订阅 WORK LIGHT 推送通知中的用户 ID的主要内容,如果未能解决你的问题,请参考以下文章

怎么实现订阅号消息推送到手机通知栏?

ServiceWorker 如何通过向所有订阅者推送来触发刷新/重新加载?

如何在GCP发布/订阅中推送到多个端点?

安装 Work Light 开发者版时出现的问题

针对适配器冲突的 Work Light 2 安全测试

Windows 8 问题上的 Work Light 6.0 部署