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 移动应用服务后端将字符串属性反序列化为 Json 对象