2017-07-28 19 views
0

API APNSをCURLで実行しようとしました。 、私は、このリンク(http://learn-php-by-example.blogspot.in/2013/01/working-with-apple-push-notification.html)のようなPHPを使用してSSLを試してみました.Earlier無効なデバイストークンを処理するために、このメソッドをしようとしていたAPIを使用したAPNS通知が機能しない

�@@uUnexpected HTTP/1.x request: POST /3/device/54688ae0e1ecc3bc0d517521f4935c014342ecca792ef798f0e63652a4620ed4 bool(true) ----int(0) 

:コードはとしてはIAMが結果を取得

$pem_file  = 'public/assets/pem/test.pem'; 
$pem_secret  = ''; 
$apns_topic  = 'com.test.demo'; 
if(defined('CURL_HTTP_VERSION_2_0')) 
{ 
    $devicetoken=['54688ae0e1ecc3bc0d517521f4935c014342ecca792ef798f0e63652a4620ed4','de963dfbc03f5de416c7d806e04a6f3276716f246942fa2a61cffa393a780120','a08832de8b72567aa487beefe50e4e29caaa4a51ab14706fc8f0ef9df1f6b9c4','48335901c12bf02a03cef453d2e7739eaac9779991cafef3fa70ffe587ea3f12']; 

$sample_alert = '{"aps":{"alert":"hi","sound":"default"}}'; 
    foreach($devicetoken as $device_token) 
    { 
    $url = "https://api.development.push.apple.com/3/device/$device_token"; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $sample_alert); 
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("apns-topic: $apns_topic")); 
    curl_setopt($ch, CURLOPT_SSLCERT, $pem_file); 
    curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $pem_secret); 
    $response = curl_exec($ch); 
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

//On successful response you should get true in the response and a status code of 200 
    var_dump($response);echo "----";var_dump($httpcode); 
    } 
} 
else{ 
    echo"NOt a supported version"; 
} 

以下の通りです無効なデバイストークンがdb内にあり、ループを通過するときにプッシュ通知が機能しなくなります。だから私はAPIメソッドを試していた。新しいHTTP/2 APNSプロバイダAPIのためのあなたの応答みんなのために事前に

おかげ

+0

ここにオリジナルの認証情報を入れない – C2486

+0

応答はHTTP1.xでこれを受信したことを示しているようです!あなたの設定通りではありません。 'php curl'のインストールを確認しますか? – YvesLeBorg

+0

冗長なカールを試しましたか?私はときどき明らかな「仲間」問題へのより多くの洞察を得るでしょう。 – YvesLeBorg

答えて

1

は、あなたがプッシュ通知を送信するためにカールを使用することができます:New APNS Provider API and PHP

+0

私はそのリンクだけを試みました、私が掲載したコードを確認してください。それよりも私はsslを使っていました。 –

0

まず、あなたのcURLのバージョンはHTTP/2をサポートしていることを確認してください(これでcURLをコンパイルする必要がありますが、デフォルトではアクティブではありません)。

次に、cURLがOpenSSL v1.0.2以上を使用していることを確認します。

関連する問題