Windows 8 频道URL与呼叫方应用程序不兼容

Windows 8 频道URL与呼叫方应用程序不兼容,windows-8,push-notification,Windows 8,Push Notification,我正在尝试按照在Windows8中编写推送通知示例。我已将我的应用程序与商店关联,并收到了应用程序的通知频道。但是,当我将它传递给我的云服务(这只是一个从查询字符串获取通道URI的网站)以获取访问令牌时,HTTP请求总是超时。但当我尝试使用SID和SecretKey从应用程序中获取访问令牌时,它成功了。当我尝试用于测试时,我收到一个异常“频道URL与调用方应用程序不兼容”。据我所知,云服务不需要与存储关联或配置推送通知,它只需要SID和SecretKey就可以获得访问令牌。不确定我的假设/理解是

我正在尝试按照在Windows8中编写推送通知示例。我已将我的应用程序与商店关联,并收到了应用程序的通知频道。但是,当我将它传递给我的云服务(这只是一个从查询字符串获取通道URI的网站)以获取访问令牌时,HTTP请求总是超时。但当我尝试使用SID和SecretKey从应用程序中获取访问令牌时,它成功了。当我尝试用于测试时,我收到一个异常“频道URL与调用方应用程序不兼容”。据我所知,云服务不需要与存储关联或配置推送通知,它只需要SID和SecretKey就可以获得访问令牌。不确定我的假设/理解是否错误

谢谢, Soorya

我刚刚测试了一下,它对我很好。云服务确实需要SID和密钥来代表您的应用程序向WNS进行身份验证,因此从这个意义上说,它们是关联的,但对于应用程序来说,关联是非常临时的,因为您只需将它们作为输入输入(请注意,它们是以明文形式使用该工具的)

您需要使用从Windows 8应用程序(via)获得的URI,使用与获取OAuth访问令牌完全相同的SID和密钥。当您将应用程序与商店仪表板中的配置文件关联时,所有这些都将为您进行适当设置

听起来这正是您所做的,但是您所得到的错误具有尝试使用一个SID/密钥获得的通道URI来发送使用不同SID/密钥进行身份验证的通知的特征。请注意,如果您正在卸载并重新安装Win 8应用程序(Visual Studio中“调试”选项卡上的一个选项),这也将使以前获得的URI无效;但是,在我的例子中,31daysofwindows8站点报告了一个已撤销的URI,而不是一个“不兼容”的URI

至于超时的云服务,当您发送URI时,您是否对其进行url编码


最后,它与您的具体问题有点相切,但如果您没有注意到,它的作用恰恰是消除使用您自己的服务来完成这一切的痛苦。有一个完全免费的层,当你的应用程序获得巨大成功时,总是能够添加更多马力。

使用Cordova for Windows,我发现,该应用程序应该通过菜单命令“Store”->“Associate app with the Store…”与Windows应用商店中的应用程序相关联

但即使在“商店”->“将应用程序与商店关联…”之后,推送消息也无法传递

问题是,该应用程序仍然分配了默认CordovaApp_TemporaryKey.pfx


在我将新的CordovaApp.Windows_StoreKey.pfx复制到CordovaApp_TemporaryKey.pfx后,邮件传递成功。

嗨,Jim,感谢您的回复。我为应用程序创建了一个新的SID和密码,并将其与应用商店关联。我现在在使用时收到推送通知。这让我松了一口气。但当我试图自己创建云服务时,当我试图通过传递SID和secretKey来获取访问令牌时,它总是超时。有什么建议吗?OAuthToken GetAccessToken(string secret,string sid){var urlencodedId=HttpUtility.UrlEncode(string.Format(“{0}”,sid));var urlEncodedSecret=HttpUtility.UrlEncode(secret);var body=string.Format(“grant_type=client_凭据&client_id={0}&client_secret={1}&scope=notify.windows.com”,urlencodedId,urlEncodedSecret);var client=new WebClient();client.Headers.Add(“内容类型”,“应用程序/x-www-form-urlencoded”);string response=client.UploadString(“,正文”);var oAuthToken=GetOAuthTokenFromJson(response);return oAuthToken;}我也有同样的问题。您从何处获得CordovaApp.Windows_StoreKey.pfx?在“将应用程序与商店关联…”过程完成后,您将其放入项目文件夹中。