Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

apple push notification for iOS and google cloud messaging for android using php?

I'm looking for php code which can send push notification to ios devices and android devices both.

Individually i have used easyapns for the ios push notification and gcm for the android push notification.

i want to merge both codes and make a single code for sending push notification for both devices.

i'm working on php part only. is there any solution to make it easy ?

like image 410
Striker Avatar asked Oct 08 '14 10:10

Striker


1 Answers

after my research i found a solution its working fine for ios.

 public function send_notification($registration_id,$message,$ios_certificate,$badge,$tHost){
    // Provide the Host Information.
    //$tHost = 'gateway.sandbox.push.apple.com';

    $tPort = 2195;

    // Provide the Certificate and Key Data.
    //$tCert = 'certificates/meetmethere/apns-dev-cert.pem';
    $tPassphrase = '';

    //$tToken = 'efdf10632aa4e711ef8c57abf2a3cdec51e7c42811bb998c3e26de2876bac8fa';
    //$tAlert = 'this is the test message ';

    // The Badge Number for the Application Icon (integer >=0).

    $tBadge = 0;

    // Audible Notification Option.
    $tSound = 'default';

    // The content that is returned by the LiveCode "pushNotificationReceived" message.
    $tPayload = 'message';

    // Create the message content that is to be sent to the device.
    $tBody['aps'] = array (
                        'alert' => $message,
                        'badge' => $badge,
                        'sound' => $tSound,
                    );

    $tBody ['payload'] = $tPayload;
    $tBody = json_encode ($tBody);

    // Create the Socket Stream.
    $tContext = stream_context_create ();

    stream_context_set_option ($tContext, 'ssl', 'local_cert', $ios_certificate);

    // Remove this line if you would like to enter the Private Key Passphrase manually.

    stream_context_set_option ($tContext, 'ssl', 'passphrase', $tPassphrase);

    // Open the Connection to the APNS Server.

    $tSocket = stream_socket_client ('ssl://'.$tHost.':'.$tPort, $error, $errstr, 30, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $tContext);

    // Check if we were able to open a socket.

    if (!$tSocket)
        $status=false;

    // Build the Binary Notification.
    $tMsg = chr (0) . chr (0) . chr (32) . pack ('H*', $registration_id) . pack ('n', strlen ($tBody)) . $tBody;

    // Send the Notification to the Server.

    $tResult = fwrite ($tSocket, $tMsg, strlen ($tMsg));

    if ($tResult)
        $status=true;
    else
        $status=false;
    fclose ($tSocket);

            return $status;
}`
like image 82
Striker Avatar answered Oct 13 '22 12:10

Striker