如何在通知中心向特定用户发送推送通知?

Posted

技术标签:

【中文标题】如何在通知中心向特定用户发送推送通知?【英文标题】:How to Send Push Notification to a specific user on Notification Hub? 【发布时间】:2016-08-03 17:12:48 【问题描述】:

有什么方法可以向特定用户发送通知?我尝试使用 deviceToken。但是我找不到任何教程来展示我可以向设备令牌发送通知的方式。

【问题讨论】:

【参考方案1】:

根据https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-node-backend-how-to-use-server-sdk/#push-user上的描述:

当经过身份验证的用户注册推送通知时,用户 ID 标签会自动添加到注册中。通过使用此标签,您可以向特定用户注册的所有设备发送推送通知。

您可以创建一个与表关联的 EasyTable 脚本,以存储经过身份验证的用户 ID。您可以利用以下代码 sn-p 来实现:

table.insert(function (context) 
    context.item.userId = context.user.id;
    return context.execute();
);

更多信息请参考https://github.com/Azure/azure-content/blob/master/articles/app-service-mobile/app-service-mobile-node-backend-how-to-use-server-sdk.md#how-to-adjust-the-query-that-is-used-with-table-operations。

然后使用此php sample 发送带有用户 ID 的通知:

$hub = new NotificationHub("<connectionString>", "<hubName>");
$message = '"data":"message":"Hello from PHP!"';
$notification = new Notification("gcm", $message);
$hub->sendNotification($notification, "_UserId:sid:<UserId>");

【讨论】:

【参考方案2】:

您将拥有一个设备令牌来发送推送。有几种方法可以获取设备令牌。以下示例将对您有所帮助。

https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-aspnet-backend-windows-dotnet-wns-notification/

【讨论】:

【参考方案3】:

您可以使用tags 做到这一点。将唯一标签与每个用户关联,然后向该标签发送通知。

Azure Notification Hubs Notify Users for ios with .NET backend 是一个分步教程,让您了解如何使用标签。

How to use Notification Hubs from PHP 会告诉你如何在 PHP 中做到这一点。

另外,看看它所指的this answer 和the sample。

一旦您准备好原型,请使用Diagnosis guidelines 解决任何问题。

【讨论】:

问题是我试图存储标签,但 Azure 门户中没有任何反应。这是我发送[NSSet setWithObjects:@"user", nil];的对象。 哦,通知中心标签与您在 Azure 门户中看到的 Azure 资源管理器标签不同。真的很混乱,看看my answer 到Why are Azure Notification Hub tags not saving? 有没有澄清。也看看Debugging Notification Hubs using Service Bus Explorer。

以上是关于如何在通知中心向特定用户发送推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

通过通知中心向所有用户发送推送通知

如何从通知中心 Swift 中删除特定的推送通知

如何向 Azure 通知中心注册的每个设备发送不同的推送通知?

Azure 功能:向特定用户发送通知

社交网络场景中的 Azure 通知中心最佳实践

尝试使用 Azure 通知中心批量发送时出现 403 禁止