つい最近、 クエストマンは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 :
- プロジェクトを作成する
- [サービス]に移動し、[Android向けGoogleクラウドメッセージング]を選択します
- 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
ご清聴ありがとうございました。 腐ったトマトは、少なくともいくつかの説明を歓迎します)