Google Cloud Messaging:Codeigniterのライブラリと、Google Cloud MessagingとApple Push Notificationsのいくつかの違い

こんにちは



つい最近、 クエストマンはGoogle Cloud Messagingと呼ばれるGoogleの新しいサービスに関する記事を書きそれを使用したAndroidアプリケーションの例を挙げました。

私の鐘楼から、Apple Push Notificationsを使用した経験に目を向けて、サーバー側の観点からトピックを続けたいと思います。







新しいサービスは、Googleクラウドメッセージングが既に言及されているため呼び出されます(06.27.12より前にこれに遭遇した人は、クラウドツーデバイスメッセージング(c2dm)サービスとして知られています)。



最初の顕著な違いの1つは、送信者スクリプトの認証方法です。 GCMはAPIキー認証を受け入れますが、C2DMはClientLoginまたはOAuthを必要としました。



コンソールでAPIキー自体を取得できます-code.google.com/apis/console

  1. プロジェクトを作成する
  2. [サービス]に移動し、[Android向けGoogleクラウドメッセージング]を選択します
  3. APIアクセスに移動し、新しいサーバーキーを作成します




Androidアプリケーション自体の記述方法はquestmanによって説明されました 。また、ドックで情報を検索することもできます-developer.android.com/guide/google/gcm/gs.html



さらに、APNの場合のように、Androidデバイスに通知を送信するには、その登録ID(iOSアプリケーションのデバイストークンとほぼ同じ役割を果たします)を知る必要があります。 これは、アプリケーション開発者が処理する必要があります。



APNとは異なり、Google Cloud Messagingは証明書を使用しません。

開発および本番の通知を送信するためのアドレスは、 android.googleapis.com / gcm / sendの 1つのみです。

また、主要なAPIには、開発バージョンと製品バージョンを区別するものがありません。 ただし、キー設定では、通知を送信するために許可されたIPアドレスが厳密に登録されます。



サーバーで登録IDとAPIキーを受け取ったら、デバイスへの通知の送信を安全に開始できます。



再びAPNを思い出して、バイナリデータを台無しにしないでくれたGoogleに感謝します。 データは、POSTメソッドによってプレーンテキスト、JSONまたはプレーンテキスト形式で送信されます(これは、APNの単純な拡張形式とはまったく異なります。GCMの場合、サービスはいずれの場合でも詳細な回答を返します)。 もちろん、JSONを使用して自分で使用することをお勧めします。 さらに、複数の受信者への通知の送信は、その助けを借りて初めて実現できます。



複数のユーザーにメッセージを送信するには、登録IDをリストするだけです。 メッセージは1回だけ書き込まれます。



APNと同様に、追加のデータをGCMに転送できます。 データのサイズは、通知全体のサイズによってのみ制限され、4096バイトを超えることはできません。



さて、最後の最も楽しいことは、サービスに対する明確で完全な答えがあるということです。 この場合のGCMは、Appleの同僚よりもはるかにおしゃべりです。 エラーの送信はhttp-headerで行うことができ、具体的には各メッセージ/デバイスに個別に適用されます。



それらはすべて、 developer.android.com / guide / google / gcm / gcm.htmlドックで十分に詳細に説明されています。



そして最後に、c2dmパッケージコードに基づいて、Codeigniterの下で小さなライブラリの作業を実証したいと思います(原則として、CI自体に特に関連付けられていないため、個別のphpクラスに移行することは難しくありません)©2011 lytsing.org&2012 thebub。 GCMで修正されたネット:



//  public function send_gcm() { //  // API key    $this->load->library('gcm'); // .        setData(), //        setMessage,   setData(), //    setMessage()     $this->gcm->setMessage('Test message '.date('dmY H:s:i')); //     //           4 $this->gcm->addRecepient('RegistrationId'); $this->gcm->addRecepient('New reg id'); //      $this->gcm->setData(array( 'some_key' => 'some_val' )); //  TTL   : http://developer.android.com/guide/google/gcm/adv.html#lifetime //  TTL $this->gcm->setTtl(500); //  TTL     $this->gcm->setTtl(false); //    $this->gcm->setGroup('Test'); //      $this->gcm->setGroup(false); //  if ($this->gcm->send()) echo '   '; else echo '      '; //       print_r($this->gcm->status); //     print_r($this->gcm->messagesStatuses); die(' .'); }
      
      







ライブラリ自体は伝統的にgithubで見つけることができます-codeigniter-gcm



ご清聴ありがとうございました。 腐ったトマトは、少なくともいくつかの説明を歓迎します)



All Articles