经过几个小时的试用,我仍然无法向我的应用程序发送推送通知。这就是我到目前为止所做的:
激活服务于https://appdev.microsoft.com
得到了SID,我们调用它ms-app://s-1-23-4-12345678901-...-12345678901
收到客户端密钥,我们调用它12Lwq7526OqNY8iN-aLkwds23451345
-
在我的应用程序中,我在某个时候实现了以下内容(简化):
PushNotificationChannel channel = null;
channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
System.Diagnostics.Debug.WriteLine(channel.Uri);
-
这会打印一个类似的 url:
https://db3.notify.windows.com/?token=AgY7AABrfRCVgRV%2ba4DwoDjC2omrnOVwCkdhCrrzlJi6UpIwHzcig6%2fG5xZfnDqU0%2fXoE848ddiqyTaTlSSltp2Dn9Z3qaPsMAyh7kS%2bmlis1%2bwoh%2b%2b4DsAK1yeV1d9G1rUIuFs%3s
我将正确的包名称、发布者显示名称和发布者 ID 添加到我的 Package.appxmanifest 文件中
-
所以我想我已经准备好测试推送通知了。使用我自己的 Push Sharp 实现,fiddler 输出如下:
Request:
POST https://db3.notify.windows.com/?token=AgY7AABrfRCVgRV%2ba4DwoDjC2omrnOVwCkdhCrrzlJi6UpIwHzcig6%2fG5xZfnDqU0%2fXoE848ddiqyTaTlSSltp2Dn9Z3qaPsMAyh7kS%2bmlis1%2bwoh%2b%2b4DsAK1yeV1d9G1rUIuFs%3s HTTP/1.1
X-WNS-Type: wns/toast
Authorization: Bearer EgAC4AA1hAZAQMAklDAAEgAAAUe8/AGsK8a/yk78/WEDQf+KUld/nYIvJ51OIoCPgAfwqbl0oo1sPDLhd9ChiO/iLFVzwlTPE3trp9oTkJxNXi0yUrf+FKjRciq7Utek9B/4dxH9lFNy0R5iwdMS0xNS0yLTIyNDgyMDE1NzEtMjczODcxMjkyMy0yMzM3MbsS59ZuQmXCIAFoOiAAAAAAAgzMOTB7OuFIezrhS60gEAAoANS45LjYuMTBiPoPMh3Nj5MAEOp0RhrcMUx6D50AtDuzWE1AAAAAABeAG1zLWiwcDovL3MtTk2Nzk3LTEzOTYwNDkxODYtMjEyODYwMTQ3MS04MDg1MDg2ODUtMzY3NjQyNTk3OQA=
Content-Type: text/xml
Host: db3.notify.windows.com
Content-Length: 138
<toast>
<visual>
<binding template="ToastText01">
<text id="1">This is a test</text>
</binding>
</visual>
</toast>
Answer
HTTP/1.1 403 Forbidden
Content-Length: 0
X-WNS-ERROR-DESCRIPTION: Channel URL incompatible with caller app
X-WNS-MSG-ID: 5FC550364E079585
X-WNS-DEBUG-TRACE: DB3WNS4011533
Date: Mon, 23 Dec 2013 23:58:22 GMT
我找到了这个帖子频道 URL 与呼叫者应用程序不兼容 https://stackoverflow.com/questions/17115257/channel-url-incompatible-with-caller-app到目前为止这并没有真正帮助
我使用网络服务时遇到同样的错误http://31daysofwindows8.com/push http://31daysofwindows8.com/push。我在这里能做什么?可能出了什么问题?请注意,此应用程序尚未发布到商店,我正在本地 Windows 8.1 安装上进行测试。
哇,这太令人难以置信了。我几乎要疯了,但这是解决方案(和解释):
在 Windows 应用程序仪表板中,它表示您可以手动或自动设置应用程序身份。我选择手动完成(我的意思是,为什么不呢?)。但那是一个错误。我引用 microsoft.com 仪表板:
手动设置应用程序的身份值
在文本编辑器中打开应用程序的 AppManifest.xml 文件,并使用此处显示的值设置元素的这些属性。
<Identity Name=" MyName.MyApp " Publisher="CN=*******-****-****-****-************" />
这个方法没有让我收到推送通知!
获取推送通知的唯一方法(对我来说)如下:尝试通过调用此菜单由 Visual Studio 自动设置应用程序标识:
PROJECT -> STORE -> ASSOCIATE APP WITH THE STORE...
这解决了我的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)