Azure App Service - 向特定用户发送推送通知

时间:2016-03-03 07:29:50

标签: ios node.js azure azure-web-sites azure-notificationhub

我正在将Azure App Service(Node.js)与Notification Hubs结合使用,以便从iOS应用程序注册推送通知。由于标签在具有Node.js后端的App Service中不再可用,我如何针对推送通知针对特定用户。

一旦用户在iOS应用程序中进行了身份验证(即通过Facebook),userId标记就会自动添加到注册中。 当我使用移动服务时,我可以使用以下代码将标签添加到通知中心的设备注册中:

-(void)registerDeviceToken:(nonnull NSData *)deviceToken completion:(nullable MSCompletionBlock)completion;

但新SDK并未提供允许使用标记注册的方法:

- (void)registerNativeWithDeviceToken:(NSData*)deviceToken tags:(NSSet*)tags completion:(void (^)(NSError* error))completion;

我的问题是userId的格式不像Facebook:123456789(与移动服务一样),而是在注册过程中自动生成GUID - 我以后无法存储和查询它发送通知时。

有人可以帮助我如何使用Azure App Service和Notification Hubs以及Node.js向特定用户发送通知吗?

1 个答案:

答案 0 :(得分:0)

MSDN上https://social.msdn.microsoft.com/Forums/azure/en-US/ed5327f6-6f0a-4cbc-91d4-74a9885e2131/nodejs-after-i-upgraded-my-ios-app-from-mobile-services-to-app-services-i-cant-register-for?forum=azuremobile有类似的帖子供您参考。

根据答案,我们知道

  

默认注册码不允许您故意注册标签

我们可以从How to: Add tags to a device installation to enable push-to-tags in .Net得到提示:

  

按照上述如何:定义自定义API控制器,您需要在后端设置自定义API以使用通知中心向特定设备安装添加标签。确保传递存储在客户端本地存储上的安装ID和要添加的标记(可选,因为您还可以直接在后端指定标记)。应将以下代码段添加到控制器以与Notification Hub一起使用,以将标记添加到设备安装ID。

在Node.js后端,我们可以利用包含推送通知功能的Azure SDK for Node.js,我们可以在https://github.com/Azure/azure-sdk-for-node/blob/master/examples/notification-hubs.md查看用法。

此外,我们可以从https://github.com/Azure/azure-sdk-for-node/blob/master/lib/services/serviceBus/lib/notificationhubservice.js#L116

的源代码存储库中获取send()函数的详细参考