39 votes

Mise en œuvre des notifications push pour iOS (côté serveur)

Nous voulons pouvoir envoyer des messages texte simples à TOUS nos utilisateurs d'iphone. Pour cela, nous devons évidemment créer un code côté serveur qui stocke les jetons des appareils et envoie les messages chaque fois que nécessaire. Existe-t-il un bon exemple pour faire cela ? (En parlant du code serveur)

Merci

46voto

Frank Points 2466

Jetez un coup d'œil à easyAPNS si vous souhaitez l'héberger vous-même, ou visitez le site Dirigeable urbain si vous êtes d'accord avec un service d'hébergement (ils ont une documentation complète)

Un autre bon site d'information est celui de Ray Wenderlich, qui propose un tutoriel en deux parties :

14voto

Abhijit Points 119
  // 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('jackbrown00001@gmail.com', 'IOSPushMsgStatus', $msg_iphone);
     fclose($fp);
    } //if($users_rows['Platform'] == 'Web' OR $users_rows['Platform'] == 'Android')

0voto

Asaf Points 449

Je recommande également d'utiliser un service externe pour cela, comme Urban Airship ou PushApps . Je suis plus familier avec le dernier, et je peux vous dire qu'en plus des messages de notifications push "normaux", vous obtenez également des messages par segmentation, par localisation ou même par programmation de la notification. Cela peut ne pas sembler être des fonctionnalités essentielles pour vous au début, mais au fur et à mesure que votre base d'utilisateurs augmentera, vous verrez à quel point ces fonctionnalités sont importantes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X