i am just trying to test an app with android push notification (C2DM), I am sure there is nothing wrong with the android code. I am using PHP code to connect to push server and send a message, its working fine in my local server.
But if i run the same in a third party server its not running. It is not giving me any error msgs. and it says "HTTP status 200 OK" as response.
for your reference i am adding the code, i got this from some website.
<?php
$username ="push_enabled_email_id@gmail.com";
$password = "password";
$source="My-Server-Event-Alerter"; //anything that says about ur app
$service="ac2dm";
// local server
$message =$_GET ['message'];
if ($_GET ['message'] != '' )
{
$message =$_GET ['message'];
echo 'Message sent to server '.$message;
$post_params = array(
"Email" => $username,
"Passwd" => $password,
"accountType"=>"HOSTED_OR_GOOGLE",
"source" => $source,
"service"=>$service
);
$first = true;
$data_msg = "";
foreach ($post_params as $key => $value)
{
if ($first)
$first = false;
else
$data_msg .= "&";
$data_msg .= urlencode($key) ."=". urlencode($value);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
$data = array(
'accountType' => HOSTED_OR_GOOGLE,
'Email' => $username,
'Passwd' => $password,
'source'=> $source,
'service'=>$service
);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// for debugging the request
//curl_setopt($ch, CURLINFO_HEADER_OUT, true); // for debugging
$response = curl_exec($ch);
curl_close($ch);
echo $response;
$pos = strpos($response, "Auth=");
$authKey = trim(substr($response, 5+$pos));
echo $authKey;
echo 'Device Token: '. $deviceToken . '';
$data = array(
'registration_id' => $deviceToken,
'collapse_key' => 'ck_' . 'col_key',
'data.message' => $message,
'data.title' =>'Request Push Demo'
);
//$data = (is_array($data)) ? http_build_query($data) : $data;
$ch = curl_init();
curl_setopt($ch, CUR开发者_JAVA技巧LOPT_URL, "https://android.apis.google.com/c2dm/send");
echo 'Content-Length:'.strlen($data);
$headers = array('Authorization: GoogleLogin auth=' . $authKey,'Content-Length:'.strlen($data));
if($headers)
{
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$messagedata = curl_exec($ch);
//var_dump(curl_getinfo($ch)); //for debugging the request
//var_dump($messagedata);
// echo $messagedata;
curl_close($ch);
}
?>
<html>
<form action ="./c2dmtest2.php" method="get" enctype="application/x-www-form-urlencoded" name="Send Notification" target="_self">
<label>Push Message
<input name="message" type="text" size="50" maxlength="50"></label>
<input name="Send Message" type="submit" value="Send Message">
</form>
</html>
Can you add the following lines on top of your code, in order to see potential errors:
error_reporting(E_ALL);
ini_set('display_errors', '1');
精彩评论