probleme avec notification push

paddevpaddev Membre
Bonjour j'ai un souci avec les notification push.

cela marche tres bien quand je suis en local (mamp) mais quand je met mon code php sur mon serveur, j'ai cette erreur:

Warning: stream_socket_client() [function.stream-socket-client]: SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure in /homez.9/eleazar/www/eleazar_iphone/simplepush.php on line 21<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: Failed to enable crypto in /homez.9/eleazar/www/eleazar_iphone/simplepush.php on line 21<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /homez.9/eleazar/www/eleazar_iphone/simplepush.php on line 21<br />Failed to connect: 0


Je suis un peu perdu car cela fonctionne tres bien en localhost...

merci pour votre aide.

Réponses

  • paddevpaddev Membre
    21:49 modifié #2
    Pour info voici mon code php:

    &lt;?php<br /><br />// Put your device token here (without spaces):<br />$deviceToken = &#039;mon token&#039;;<br /><br />// Put your private key&#039;s passphrase here:<br />$passphrase = &#039;monmotdepasse&#039;;<br /><br />// Put your alert message here:<br />$message = &#039;celui ci marche !&#039;;<br /><br />////////////////////////////////////////////////////////////////////////////////<br /><br />$ctx = stream_context_create();<br />stream_context_set_option($ctx, &#039;ssl&#039;, &#039;local_cert&#039;, &#039;apns-dev.pem&#039;);<br />stream_context_set_option($ctx, &#039;ssl&#039;, &#039;passphrase&#039;, $passphrase);<br /><br />// Open a connection to the APNS server<br />$fp = stream_socket_client(<br />	&#039;ssl://gateway.sandbox.push.apple.com:2195&#039;, $err,<br />	$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);<br /><br />if (!$fp)<br />	exit(&quot;Failed to connect: $err $errstr&quot; . PHP_EOL);<br /><br />echo &#039;Connected to APNS&#039; . PHP_EOL;<br /><br />// Create the payload body<br />$body&#91;&#039;aps&#039;] = array(<br />	&#039;alert&#039; =&gt; $message,<br />	&#039;sound&#039; =&gt; &#039;default&#039;<br />	);<br /><br />// Encode the payload as JSON<br />$payload = json_encode($body);<br /><br />// Build the binary notification<br />$msg = chr(0) . pack(&#039;n&#039;, 32) . pack(&#039;H*&#039;, $deviceToken) . pack(&#039;n&#039;, strlen($payload)) . $payload;<br /><br />// Send it to the server<br />$result = fwrite($fp, $msg, strlen($msg));<br /><br />if (!$result)<br />	echo &#039;Message not delivered&#039; . PHP_EOL;<br />else<br />	echo &#039;Message successfully delivered&#039; . PHP_EOL;<br /><br />// Close the connection to the server<br />fclose($fp);<br />
    
  • paddevpaddev Membre
    21:49 modifié #3
    en fait ca fonctionne , je m'étais trompé dans le chemin du .pem.
    Par contre je viens d'essayer easyapns et j'ai le meme genre de probleme, et la pourtant mon chemin est bon ... quelqu'un est arrivé a faire fonctionné easyapns? :

    <br />Warning: stream_socket_client() [function.stream-socket-client]: Unable to set private key file `/homez.9/eleazar/www/eleazar_iphone/apns-dev.pem&#039; in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 398<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: failed to create an SSL handle in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 398<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: Failed to enable crypto in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 398<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 398<br /><br />Notice: Failed to connect to APNS: 0 . 1) APNS::__construct -&gt; File: apns.php (line 52) 2) APNS::_fetchMessages -&gt; File: class_APNS.php (line 219) 3) APNS::_pushMessage -&gt; File: class_APNS.php (line 373) 4) APNS::_triggerError -&gt; File: class_APNS.php (line 403) in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 507<br /><br />Warning: fclose(): supplied argument is not a valid stream resource in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 416<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: Unable to set private key file `/homez.9/eleazar/www/eleazar_iphone/apns-dev.pem&#039; in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 433<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: failed to create an SSL handle in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 433<br /><br />Warning: stream_socket_client() [function.stream-socket-client]: Failed to enable crypto in /homez.9/eleazar/www/eleazar_iphone/classes/class_APNS.php on line 433<br /><br />Warning: stream_
    
  • CeetixCeetix Membre
    21:49 modifié #4
    Renome tes fichiers en .php5 peut-être.
  • zoczoc Membre
    21:49 modifié #5
    dans 1327161423:

    quelqu'un est arrivé a faire fonctionné easyapns? :

    Oui, moi, mais c'était il y a déjà  pas mal de temps (plus d'un an).
  • paddevpaddev Membre
    21:49 modifié #6
    Alors j'ai reussi a me servir de easyapns.
    je reçois bien mes push en mode developpement mais avant d' envoyer mon appli a apple j'aimerais tester si cela fonctionne en mode distribution.
    Comment je peux faire?
    je essayer en mettant sur xcode mon profile de distibution dans le "code signing" mais je ne reçois aucun push.

  • zoczoc Membre
    21:49 modifié #7
    dans 1327236253:

    Comment je peux faire?

    En utilisant un profil de distribution "Ad-Hoc".

  • paddevpaddev Membre
    21:49 modifié #8
    merci zoc , peux tu etre plus explicite, je ne trouve pas le monde ahoc , j'ai juste essayer un mode  iphone distribution (mon profil de distribution) dnas le code signing identity( en release) et apres j'ai fait un archive puis share pour recuperer le .ipa mais je ne reçois rien...
  • zoczoc Membre
    21:49 modifié #9
    Il existe 2 types de profil de distribution:
    • Les profils de distribution pour l'appstore
    • Les profils de distribution dits "Ad-Hoc", qui permettent d'installer une version de production de l'application sur 100 iDevices au maximum sans passer par l'appstore.

    Je t'invite donc à  aller sur le site web de gestion de profils du site developpeurs iOS d'Apple, de créer un profil de distribution Ad-Hoc pour ton application, et accessoirement de lire la documentation pour connaitre le détail du fonctionnement des profils de distribution (ce serait vraiment trop long à  détailler ici).

  • paddevpaddev Membre
    21:49 modifié #10
    merci pour le conseil mais pares plusieurs essais je ne reçoit toujours rien, cela fonctionne tres bien en mode developpement mais pas en production pourtant j'ai fait exactement les memes manip... je cherche toujours d'ou peut venir le probleme.
    Comment pourrais je proceder pour essayer de debugger?
    un conseil?
  • paddevpaddev Membre
    21:49 modifié #11
    et d'ailleurs j'ai une chose assez hallucinante, je suis en mode ad hoc avec mon certificat de distribution et je reçois quand meme le push via le sandbox mais tjs rien via le gateway de production...
    comment debugger cette affaire?
Connectez-vous ou Inscrivez-vous pour répondre.