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

使用Windows App SDK实现Windows推送通知时遇Bad Request错误

纯C++ Win32应用实现Windows推送通知的令牌获取问题解决

1. 无效客户端ID(Bad Request)排查

  • 核对Azure应用注册的客户端ID:确保复制时无多余空格、无字符遗漏,GUID格式需完全匹配。
  • 确认令牌请求URL:正确端点为https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token(单租户替换{tenant-id},多租户可用common)。
  • 校验请求参数:
    • grant_type必须设为client_credentials
    • client_id填入Azure应用ID
    • client_secret填入创建的客户端密钥
    • scope固定为https://notify.windows.com/.default

2. AADSTS500011错误(未找到资源主体)解决

错误源于Azure应用未关联Windows推送通知资源,需完成以下操作:

  1. 登录Azure门户,进入目标应用注册页面。
  2. 打开API权限,点击添加权限。
  3. 在我的组织使用的API中搜索Windows Push Notification Service并选择。
  4. 添加Access notification data(应用权限类型),并点击授予管理员同意(此步骤必须完成,否则令牌请求会失败)。
  5. 确保请求的scope参数严格为https://notify.windows.com/.default,无拼写错误。

3. Win32应用推送通知额外注意事项

  • 获取Channel URI时,调用针对桌面应用的CreatePushNotificationChannelForApplication重载,正确处理回调获取URI。
  • 发送推送时,请求目标为获取到的Channel URI,请求头需包含:
    • Authorization: Bearer {你的访问令牌}
    • Content-Type: application/xml(或对应推送格式的类型)
    • X-WNS-Type: wns/toast(可根据需求调整为wns/badge、wns/tile等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:09:56