Azure 移动应用 Node.js 后端 - 推送通知错误状态代码 400

Posted

技术标签:

【中文标题】Azure 移动应用 Node.js 后端 - 推送通知错误状态代码 400【英文标题】:Azure Mobile Apps Node.js Backend - Push Notification Error Status Code 400 【发布时间】:2016-05-15 12:55:24 【问题描述】:

我使用 azure,node.js 作为后端,ios 作为客户端。 我已经创建了一个自定义 API 来推送,并且最近我已经成功地从 API 向 iOS 客户端发送推送通知。但现在再次调用我的 API 时它会显示如下错误消息:


   "error": 
     "code": "400",
     "detail": "The request api-version is invalid because the the notification hub was created in an older version. Re-create the notification hub..TrackingId:b90a05a5-c9db-4ad1-81f0-84c309e191f8_G2,TimeStamp:5/15/2016 12:40:41 PM",
     "statusCode": 400
    

我已经再次安装了 azure node.js,也安装了 azure-mobile-apps,但运气不好仍然有这个问题。

有解决此问题的建议或解决方案吗?

【问题讨论】:

我忘记通知了,我可以在门户上测试发送推送通知,但仍然不能在我的 API 上。 【参考方案1】:

你也有同样的问题,这几天突然发生了。

您可以通过 Kudu Console 站点或 Visual Studio 在线扩展手动修改 sdk 源代码:

导航到 Azure 上移动应用目录的 D:\home\site\wwwroot\node_modules\azure\node_modules\azure-sb\lib

在第67行修改servicebusserviceclient.js,注释掉if块,期待第69行:

  //if (webResource.queryString[Constants.ServiceBusConstants.API_VERSION_QUERY_KEY] === undefined) 
    webResource.withQueryOption(Constants.ServiceBusConstants.API_VERSION_QUERY_KEY, Constants.ServiceBusConstants.CURRENT_API_VERSION);
  // else if (webResource.queryString[Constants.ServiceBusConstants.API_VERSION_QUERY_KEY] === null) 
  //  delete webResource.queryString[Constants.ServiceBusConstants.API_VERSION_QUERY_KEY];
  //

同样的问题参考Windows Azure Notification Hub Error和https://social.msdn.microsoft.com/Forums/en-US/ad691999-8c40-4be0-8b6f-34edc8d9c4bc/windows-azure-notification-hub-error?forum=notificationhubs。

【讨论】:

嗨,加里,感谢您的指导,它工作得很好。我的推送通知正在运行。

以上是关于Azure 移动应用 Node.js 后端 - 推送通知错误状态代码 400的主要内容,如果未能解决你的问题,请参考以下文章

从 Array 推送到 Azure 队列覆盖消息?[node.JS]

移动应用使用 Azure *** 连接到本地后端

Azure 通知中心 - 从移动应用注册并通过应用后端发送通知

在 Azure 移动应用服务后端将字符串属性反序列化为 Json 对象

Azure 移动应用程序:无法从我的 nodeJS 后端发送推送通知

Azure-> Node.js 中的 Easy api-> 如何发送 android 推送通知?