GCM响应是Android应用的无效注册ID

时间:2014-09-01 07:29:01

标签: php android google-cloud-messaging

我正在为Android应用程序的聊天系统开发web服务,我正在使用GCM(谷歌云消息传递)。但我总是得到GCM无效的注册响应。我知道这可以通过格式化我传递给服务器的注册ID来解决,但我确信它与手机在聊天系统中收到的注册ID相匹配。

这是我的代码(我在哪里发送收件人电话号码gcm registarion id):

if (isset($_POST["regId"]) && isset($_POST["message"]) && isset($_POST['acceptor_no'])) {
    include_once './config.php';
    //include_once './db_connect.php';
    $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    // selecting database
    mysql_select_db(DB_DATABASE);
    $regId = $_POST["regId"];
    $accepterPhone=$_POST['acceptor_no'];
    $message = $_POST["message"];
    $arr=array();
    $selectDeviceId=mysql_query("select gcm_regid from gcm_users where phone='".$accepterPhone."'");
    $selectDeviceIdRow=mysql_fetch_array($selectDeviceId);
    $accepterDeviceId=$selectDeviceIdRow['gcm_regid'];
    include_once './GCM.php';

    $gcm = new GCM();

    $registatoin_ids = array($accepterDeviceId);
    $message = array("price" => $message);

    $result = $gcm->send_notification($registatoin_ids, $message);
    //$arr['response'] = array('msg'=>$message,'status'=>true,'phone'=>$accepterPhone,'deviceId'=>$regId,'accepterDeviceId'=>$accepterDeviceId);
    //echo json_encode($arr);
  if(isset($result))
  {
    $abc=json_encode($result);
    echo $abc;
    }else
    {
    //echo json_encode($result);
    $msg="Does not Exists";
    $arr['response'] = array('msg'=>$msg,'status'=>false);
            $abc=json_encode($arr);
            echo json_encode($arr);
    }
    }else
    {
    $msg="No data Available";
    $arr['response'] = array('msg' => $msg ,'status'=>false);
    $abc=json_encode($arr);
    echo json_encode($arr);
    }

但如果我在这种情况下打印json响应,那么我总是会收到“不存在”的响应然后它会显示“无效注册”。

请建议我如何在GCM响应中解决此类错误。

由于

1 个答案:

答案 0 :(得分:0)

你有可能从UrbanAirship复制了apid吗?如果是这样,请查看https://stackoverflow.com/a/27071675/679049

中的答案