1. ApnsPHPの設定とエラー取得

    ApnsPHPではデバイストークンの桁数が違う等は例外をthrowしているので、

    キャッチしてあげないとFatal Errorが発生し以降の処理がされない。

    $push->getErrors(); は通常のエラーメッセージ。

    $e->getMessage(); は例外のエラーメッセージ。


    require_once (dirname(__FILE__).'/ApnsPHP/Autoload.php');//同階層にある場合のパス指定

    $pem_data_1 = (dirname(__FILE__).'/server_certificates_bundle_production.pem');
    $pem_data_2 = (dirname(__FILE__).'/entrust_root_certification_authority.pem');

    $push = new ApnsPHP_Push(ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION, $pem_data_1);
    $push->setRootCertificationAuthority($pem_data_2);

    $push->connect();

    try{
    $message = new ApnsPHP_Message(デバイストークン);

    $message->setText(プッシュメッセージ);
    $message->setSound();
    $message->setCustomProperty('acme2', array('bang', 'whiz'));

    $push->add($message);

    $push->send();

    $push->getErrors();

    }catch (ApnsPHP_Message_Exception $e){

    $e->getMessage();

    }

    $push->disconnect();

     

    なお、Logは通常ApnsPHP/Log/Embedded.phpにて処理されるが、$e->getMessage();の場合は

    自分で投げるか別Logで取得する。

    ※上記はpemファイルがproductionの場合。

    sandboxの場合は、

    $pem_data_1 = (dirname(__FILE__).'/server_certificates_bundle_sandbox.pem');

    $push = new ApnsPHP_Push(ApnsPHP_Abstract::ENVIRONMENT_SANDBOX, $pem_data_1);

    とする。

    Lin

    Posted by Shunsuke Hayashi on 2013年03月13日
    Categories ApnsPHP php