phpでiphoneのpush通知&APNS鍵作成

PHPでiphoneのプッシュ通知を使いたいと調べていたらどーもAPNS-PHPというものが
あるらしい、んでどーも、鍵とかつくらなければいけないらしいので作ってみる。

APNS-PHPのページはこちら。
http://code.google.com/p/apns-php/

<APNSの鍵の作成>
①iOS provisioning Center→APPIdsに選ぶ
②使いたいアプリケーションのconfigureをクリック
③Enable for Apple Push Notification serviceをチェックする。
※ここでDevelopment Push SSL Certificate環境とProduction Push SSL Certificateという本番環境があるみたいなので
それはそれぞれの用途で選んでください。
④本番か開発用のconfigureをクリックすると、ポップアップが現れるので、そのままcontinue
⑤鍵が必要と言われるので自分のmacで鍵を作成
・キーチェーンアクセスを起動して→認証アシスタント→認証局に証明書を要求
・メールアドレスと通称には、デベロッパーアカウントのものを入力
・保存する
⑥ポップアップ画面で⑤で作成した鍵を選んでgenerate。成功したらcontiueを押して進む。
⑦鍵がダウンロードできるのでダウンロードする
⑧鍵を登録します。
aps_developer_identity.cer というファイル名でダウンロードされているはずなので
ダブルクリックし、ローカルのキーチェーンに登録します。
※キーチェーンには名は「AppleDevelopmentPushService」という名前で登録されるはずです。
⑨p12ファイルの書き出し
・キーチェーンアクセスを再度起動してください。
・左下メニューの【自分の証明書】を選択した状態にしてください。
・AppleDevelopmentPushServiceが右のウィンドウに表示されているはずなので、それを右クリックし、書き出します。
ファイル名は、apns_dev.p12とします。※ファイル名は任意なのでなんでもいいです。
・パスワードを聞かれるので設定してください。
⑩pemを作成
下記でpemを作成します。
・openssl pkcs12 -clcerts -nokeys -out apns_dev_cert.pem -in apns_dev.p12
・openssl pkcs12 -nocerts -out apns_dev_key.pem -in apns_dev.p12
・openssl rsa -in apns_dev_key.pem -out apns_dev_nopass_key.pem
・cat apns_dev_cert.pem apns_dev_nopass_key.pem > apns_dev.pem
これでpemは作成完了です。

今回はphpのapns-phpを使おうと思っているので
もう1作業必要です。

<CA証明書の取得>
※参考URL:http://code.google.com/p/apns-php/wiki/CertificateCreation

https://www.entrust.net/downloads/root_index.cfmにアクセスして
“Personal Use”を選択
②CAの証明書を取得する
証明書のダウンロード画面が表示されるので対象のものをコピー
開発環境ならentrust_2048_ca.cer 、本番ならentrust_ssl_ca.cerですね。
一応、URLでダウンロードするには下記になるようです。

sandbox(開発環境用)
https://www.entrust.net/downloads/binary/entrust_2048_ca.cer
本番用
https://www.entrust.net/downloads/binary/entrust_ssl_ca.cer
それで、もし開発環境と本番用のファイルを一緒にしたかったら下記のようにしてって書いとります
wget https://www.entrust.net/downloads/binary/entrust_2048_ca.cer -O – > entrust_root_certification_authority.pem
echo >> entrust_root_certification_authority.pem
wget https://www.entrust.net/downloads/binary/entrust_ssl_ca.cer -O – >> entrust_root_certification_authority.pem

③キーチェーンアクセスを起動して、左上のメニューは”システムルート”を左下は証明書を選んで②で作成した証明書をダブルクリック
④ Entrust Root Certification Authorityを選んで書きだす。.pemで作成する。

これでこのサンプルURLを見ながら作ればいけるはず!?です。
http://code.google.com/p/apns-php/source/browse/trunk/sample_push.php

※間違ってたらツッコミお願いします。

★参考URL
この本番環境で送られないという現象もはまりますね。。。
http://d.hatena.ne.jp/oreflow/20110701/1309510491

============追記20110813================================================================================================
Distributionを使ってテスト的に配布とかする場合は、APNsの環境は本番環境を使わないとPushされません。
あと、certificationは作り直した方がいいです。
※これ結構はまったので、追記しました。

Related Posts

Facebook comments:

Leave a Reply

Related Posts Plugin created by Cheap Web Hosting - Powered by Portfolio Cases and School Grants for Adults.

created By ooyes.net