it-swarm.com.ru

Реализация push-уведомлений для iOS (на стороне сервера)

Мы хотим быть в состоянии толкать простые текстовые сообщения для всех наших пользователей iphone. Для этого нам, очевидно, нужно создать код на стороне сервера, который будет хранить токены устройства и при необходимости отправлять сообщения. Есть ли хороший пример на это? (Говоря о коде сервера)

Спасибо

39
Alex1987

Посмотрите на easyAPNS , если вы хотите провести его самостоятельно, или посетите Urban Airship , если вы согласны с услугой хостинга (у них есть обширный набор документации)

Еще один хороший сайт для информации - это сайт Рэя Вендерлиха, на котором размещено руководство из двух частей: 

46
Frank
  // Push Notification code for IPHONE in PHP 
  $deviceToken = $users_rows['gcm_regid'];
    $passphrase = 'pass1234';
    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', 'DrinksterDevelopment.pem');
    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

    $fp = stream_socket_client(
        'ssl://gateway.sandbox.Push.Apple.com:2195', $err,
        $errstr, 120, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

    if (!$fp)
        exit("Failed to connect: $err $errstr" . PHP_EOL);

    echo 'Connected to APNS' . PHP_EOL;

    $body['aps'] = array(
       // 'alert' => $_GET["message"].'#'.$_GET["type"].'#'.$_GET["deal_id"],
       'alert' => $_GET["message"],
        'sound' => 'default'
        );
    $body['other'] = $_GET["type"].'#'.$_GET["deal_id"];

    $payload = json_encode($body);
    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
    $result_iphone = fwrite($fp, $msg, strlen($msg));

    if (!$result_iphone)
        $msg_iphone = 'Message not delivered' . PHP_EOL;

    else
        $msg_iphone = 'Message successfully delivered' . PHP_EOL;

     mail('[email protected]', 'IOSPushMsgStatus', $msg_iphone);
     fclose($fp);
    } //if($users_rows['Platform'] == 'Web' OR $users_rows['Platform'] == 'Android')
16
Abhijit

Я также рекомендую использовать для этого внешний сервис, такой как Urban Airship или PushApps . Я более знаком с последним и могу сказать, что помимо «обычных» сообщений Push-уведомлений, вы также получаете сообщения от сегментация, местоположение или даже планирование уведомления. Поначалу это может показаться вам не очень важным, но по мере роста вашей пользовательской базы вы увидите, насколько важны эти функции.

0
Asaf