我正在开发一个现有的项目,包括一个java GCM服务器,一个Android客户端(两者都工作正常)和一个iOS swift客户端(这是我的工作正在进行中)。
我一直在关注设置iOS客户端的谷歌指南(这个:https://developers.google.com/cloud-messaging/ios/client)并成功设法:
从APNS检索设备令牌
将该令牌发送到Google GCM服务器以获取注册ID
将该注册ID发送到我的GCM服务器,以便以后存储和使用。
服务器端,我显然能够使用该注册ID发送消息
可悲的是,我的客户不会收到发送到该注册ID的单个邮件。
所以我查看了android客户端代码,发现它使用了不同的senderID ..尝试了,并从谷歌服务器获得了一个HttpError 401。
所以这是我的问题:
发件人ID是 Google 服务器的ID,该服务器会将邮件重定向给我吗?或者它是 MY 应用服务器的ID?
当他们说" senderID是您在Google控制台上注册项目时获得的项目编号"他们是指"应用服务器项目"?我问这个是因为当我注册我的iOS客户端时,我得到了一个服务器api密钥(我忽略了)以及那个"显然正在工作" senderID(我用来获取注册令牌发送到我的服务器的那个)。所以我相信在这种情况下我可能会错过我的服务器的身份。
问题可能是我的服务器只发送了一个"数据"信息?我的意思是,它不包含"通知"有效载荷所以也许没有我的AppDelegate" didReceiveRemoteNotification"因为这个原因而被召唤。我应该实施其他方法/协议吗?
我非常绝望,我不会在任何地方发现这一点澄清,即使我的AppDelegate像指南的复制粘贴一样,我也很有可能错过了一些明显的东西。例子(我的意思是:我启动GCMService,我成功连接到它以及指南中的所有内容)。 提前感谢任何建议。