无法从GCM服务器接收消息

3

我正在处理一个使用Google云消息传递通知Android应用程序的项目。我已经在PHP中实现了应用程序服务器。当我运行Android应用程序时,设备从GCM服务器获取注册ID,并将其发送到PHP服务器(应用程序服务器)。但是,我从服务器收到以下httpresponse:

{
    "multicast_id": 7015234441922271670,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [{
        "message_id": "0:1344007383866721%2adac3a0ad8b3148"
    }]
}

因此,由于成功标志为1,消息已被传递,但是当我在Android应用程序中显示消息时,它什么也没有显示(null)。我无法弄清楚消息发生了什么。

2个回答

6

我有完全相同的问题...这个周末我要尝试的是: http://developer.android.com/guide/google/gcm/gcm.html

摘录:

注意:如果您的组织有防火墙限制与GCM之间的流量,您需要配置它以允许与GCM的连接。打开的端口为5228、5229和5230。 GCM通常仅使用5228,但有时也使用5229和5230。 GCM不提供特定的IP地址。 它频繁更改IP地址。 我们建议不要使用ACL,但如果您必须使用它们,请采用广泛的方法,例如此支持链接中建议的方法。


非常感谢,我的Wi-Fi正在阻止这些端口,我已经进行了数小时的调试和重建。这最终帮了我!非常感谢。我一直在使用PushPlugin和Phonegap Build以及正常的Phonegap CLI进行多次重建,直到我切换到使用我的移动数据连接,这些端口没有被阻止-然后它起作用了! :D - AmpT
太棒了!我一直在尝试解决这个问题,花了将近6个小时,现在我终于能够从GCM收到通知了。非常感谢你,它真的真的起作用了。我们的组织使用"Cyberoam"作为防火墙,这限制了GCM推送通知的端口。我使用其他设备的移动热点,现在它运行得非常好。 - Jigar

0

在你的 PHP 代码中添加这个

$data = array(
'registration_ids' => array($reg),
'data' => array(
'type' => 'New',
'title' => 'App Name',
'flag' => '1',
'msg' => 'New Message')

希望这能有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接