Я создал Azure Notification Hub и добавил ключ сервера из Firebase в раздел «GCM / FCM» в центре уведомлений. После этого я использовал общий ключ доступа и имя центра уведомлений для создания установки (в соответствии с документацией Azure). Вот код, который я использовал:
[FunctionName("TestFunction")]
public static async Task<IActionResult> RunAsync(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = null)]
HttpRequest req, ILogger log)
{
var deviceUpdate = new DeviceInstallation()
{
installationId = "<myInstallationid>",
pushChannel = "<DeviceTokenGeneratedByFirebase>",
platform = "fcm",
tags = new string[] {"notificationhubtag1"},
};
var responseMessage = new HttpResponseMessage();
try
{
responseMessage = await Put(deviceUpdate);
}
catch
{
log.LogInformation("exception occured");
}
return new OkObjectResult(responseMessage);
}
// Custom API
public static async Task<HttpResponseMessage> Put(DeviceInstallation deviceUpdate)
{
NotificationHubClient hub = new NotificationHubClient(fullAccessConnString, hubName);
Installation installation = new Installation();
installation.InstallationId = deviceUpdate.installationId;
installation.PushChannel = deviceUpdate.pushChannel;
installation.Tags = deviceUpdate.tags;
switch (deviceUpdate.platform)
{
case "mpns":
installation.Platform = NotificationPlatform.Mpns;
break;
case "wns":
installation.Platform = NotificationPlatform.Wns;
break;
case "apns":
installation.Platform = NotificationPlatform.Apns;
break;
case "fcm":
installation.Platform = NotificationPlatform.Fcm;
break;
default:
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
await hub.CreateOrUpdateInstallationAsync(installation);
return new HttpResponseMessage(HttpStatusCode.OK);
}
public class DeviceInstallation
{
public string installationId { get; set; }
public string platform { get; set; }
public string pushChannel { get; set; }
public string[] tags { get; set; }
}
Когда я запускаю этот код, я получаю сообщение об успешном завершении. Сам портал Azure не показывает много информации о нет. информации об устройствах, зарегистрированных или активных, в центре уведомлений Azure. Однако я смог подтвердить, что установка существует, сделав запрос GET к API установки напрямую через этот вызов:
https://<myNotificationHubNameSpace>.servicebus.windows.net/<myHubName>/installations/<myInstallationId>/?api-version=2015-01
Этот вызов вернул мне 200 OK с установкой, которую я создал на предыдущем шаге . Ответ выглядел так:
{"installationId":"<myInstallationId>","pushChannel":"<DeviceTokenGeneratedByFireBase>","pushChannelExpired":false,"platform":"gcm","expirationTime":"9999-12-31T23:59:59.9999999Z","tags":["notificationhubtag1"]}
Итак, я зашел в Azure Notification Hub и отправил тестовое сообщение из вкладки «Test Send» и использовал тег «notificationhubtag1» в поле SendTo tags. . Я получил успешное сообщение, в котором говорилось, что «Уведомление было успешно отправлено в систему уведомлений Pu sh», а также получил регистрационный номер.
Однако я не вижу никаких уведомлений, отправляемых в приложение сам. Как я могу отладить дополнительную информацию об этом сообщении c, которое отправляется. Где это было отправлено?
Есть ли способ найти дополнительную информацию о отправленных сообщениях, установленных устройствах и c в самом концентраторе уведомлений? Я нашел старый пост о проверке журналов, в котором говорилось, что для получения дополнительной информации нужно перейти на стандартный уровень вместо бесплатного. Я переключился на стандартный уровень, но не вижу никакой разницы в способе отображения обзора или журналов активности между бесплатным или стандартным уровнем.