Android push notifications PHP code not working on a third-party server, working on a local server

I'm just trying to test an Android intent notification app (C2DM), I'm sure there is nothing wrong with Android code. I use PHP code to connect to a push server and send a message, its performance on my local server.

But if I run the same on a third-party server, it does not work. This does not give me any error messages. and the response is "HTTP status 200 OK."

for your reference i am adding 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, CURLOPT_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> 
+4
source share
1 answer

Can you add the following lines on top of your code to see possible errors:

 error_reporting(E_ALL); ini_set('display_errors', '1'); 
0
source

Source: https://habr.com/ru/post/1369606/


All Articles