In this tutorial we will learn how to send the pushnotifications iPhone/ Android apps.
Below is the code that requires the follwoing elements to send the pushnotification from iPhone
1-) The device token to which we need to send the pushnotification
2-) The message
3- ) We can also send other information in the payload
<?php
public function notifyiPhone($token,$msg)
{
// For development we use 'gateway.sandbox.push.apple.com'
$apnsHost ='gateway.push.apple.com'; // This is for production
$apnsCert = '/etc/file'; // this is a file with .pem extention
$apnsPort = 2195;
$passphrase =1234;
$error = true;
$errorString = STREAM_CRYPTO_METHOD_SSLv23_CLIENT;
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert',$apnsCert);
$stream=stream_context_set_option($ctx, 'ssl', 'passphrase',$passphrase);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $ctx);
if($apns === False){
return;
}
$payload['aps'] = array('alert' => $msg, 'badge' => 1, 'sound' => 'default');
$output = json_encode($payload);
$token = pack('H*', str_replace(' ','',$token));
$apnsMessage = chr(0) . chr(0) . chr(32) . $token . chr(0) . chr(strlen($output)) . $output;
$result =fwrite($apns, $apnsMessage);
if (!$result)
return 'Message not delivered ';
else
return $msg ;
@socket_close($apns);
fclose($apns);
}
?>
Below is the code that requires the follwoing elements to send the pushnotification from Android
1-) The device token to which we need to send the pushnotification
2-) The message
3- ) We can also send other information in the payload
<?php
public function notifyAndroid($reg_id, $message)
{
$fields = array(
'registration_ids' => array( $reg_id ),
'data' => array( "message" => $message ),
);
$headers = array(
'Authorization: key = AzklmyAGOyh1234546jigVlwnps_rf9gZsdtI', // This is the API key
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Problem occurred: ' . curl_error($ch));
}
curl_close($ch);
}
?>
For more information see the below links:
https://gist.github.com/joashp/b2f6c7e24127f2798eb2
http://docs.pushwoosh.com/docs/gcm-configuration
http://docs.pushwoosh.com/docs/apns-configuration
0 Comment(s)