Memo

メモ > 技術 > サービス: AmazonSNS > iOS: アプリにPHPからPushを送信

iOS: アプリにPHPからPushを送信
APNs Provider API(HTTP/2)をPHPで試してみる - Qiita https://qiita.com/itosho/items/2402df4de85b360d5bd9 ■プログラムの作成 Pushを送信するためのPHPプログラムを作成する。 (ファイルの文字コードは UTF-8N にする。本番環境用の場合、送信先は api.push.apple.com にする。) apns_test.php
<?php if (defined('CURL_HTTP_VERSION_2_0')) { $ch = curl_init('https://api.development.push.apple.com/3/device/d6cb5af49500000000002425020838f4d4792c2de946bce49ad240be4f19c9b2'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"aps":{"alert":{"title":"テスト","body":"これはPHPからの送信です。"}}}'); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json','apns-topic: net.refirio.pushtest1','apns-priority: 10']); curl_setopt($ch, CURLOPT_SSLCERT, 'PushTest1-Dev.pem'); //curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'your pem secret'); // pemファイルにパスワードを設定している場合 $response = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); var_dump($response); var_dump($httpcode); }
以下で実行できる。 (PushTest1-Dev.pem は同じ階層に配置してあるものとする。)
$ php apns_test.php bool(true) int(200)
送信内容に問題があると、JSON形式でエラー内容を返してくれる。 以下はデバイストークンを間違えた場合の例。
$ php apns_test.php {"reason":"BadDeviceToken"}bool(true) int(400)
不正な証明書だと、そもそもエラー内容が返されない。 以下のような結果になる。
$ php apns_test.php bool(false) int(0)

Advertisement