我正在为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响应中解决此类错误。
由于
答案 0 :(得分:0)
你有可能从UrbanAirship复制了apid吗?如果是这样,请查看https://stackoverflow.com/a/27071675/679049
中的答案