You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用SendTemplateNotificationAsync向Azure Notification Hub发消息失败咨询

Azure通知中心API推送失败排查方案

  • 校验设备模板匹配规则
    你当前使用SendTemplateNotificationAsync模板推送接口,仅对注册时绑定了对应模板的设备生效,Azure门户的测试推送走原生平台推送路径,无需匹配模板,所以两者表现不同。请确认安卓设备注册到通知中心时,模板中的占位符key和你代码中传递的title、message完全一致,包括大小写不能有偏差。

  • 排查标签过滤逻辑
    如果设备注册时绑定了自定义标签,无标签参数的模板推送默认只会发给没有绑定任何标签的设备,你可以修改推送代码添加对应标签测试:

    // 传入设备对应的注册标签推送
    var outcome = await PublicHub.SendTemplateNotificationAsync(templateParameters, "你的设备注册标签");
    

    如果确认要全量推送,需要检查设备注册逻辑是否强制绑定了标签,导致无标签的推送无法匹配到任何设备。

  • 打印推送结果详情排查错误
    你当前代码没有读取返回的推送结果明细,添加日志输出可以直接定位问题:

    var outcome = await PublicHub.SendTemplateNotificationAsync(templateParameters);
    Console.WriteLine($"跟踪ID: {outcome.TrackingId}");
    Console.WriteLine($"成功推送数: {outcome.Success}");
    Console.WriteLine($"推送失败数: {outcome.Failure}");
    foreach (var item in outcome.Results)
    {
        Console.WriteLine($"平台: {item.ApplicationPlatform}, 错误信息: {item.Error}, 注册ID: {item.RegistrationId}");
    }
    

    结果中的错误信息会直接提示是模板不匹配、无对应注册设备还是权限类问题。

  • 替换为原生推送验证问题范围
    绕过模板推送逻辑,直接调用FCM原生推送接口测试,如果推送成功即可确定问题出在模板匹配环节:

    // 安卓原生推送示例
    var fcmPayload = "{\"notification\":{\"title\":\"测试标题\",\"body\":\"测试内容\"}}";
    var outcome = await PublicHub.SendFcmNativeNotificationAsync(fcmPayload);
    
  • 核对访问策略归属
    确认你使用的FullAccess连接字符串属于当前测试的通知中心实例,避免混淆不同资源组、不同环境的通知中心资源。


内容的提问来源于stack exchange,提问作者WarHorse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:06:05