2

私はこの投稿を読んだことがあります:

特定のユーザーへのAppleプッシュ通知

特定のデバイスにプッシュを送信する必要がありますが、私の問題は、アプリにログインするユーザーが、非推奨のUIDeviceを使用せずに、生成されたUDIDによって識別されることです。easyAPNSがこの値をMySQLに保存していることがわかります。

CREATE TABLE `apns_device_history` (
2
  `pid` int(9) unsigned NOT NULL auto_increment,
3
  `appname` varchar(255) NOT NULL,
4
  `appversion` varchar(25) default NULL,
5
  `deviceuid` char(40) NOT NULL,
6
  `devicetoken` char(64) NOT NULL,
7
  `devicename` varchar(255) NOT NULL,
8
  `devicemodel` varchar(100) NOT NULL,
9
  `deviceversion` varchar(25) NOT NULL,

特定のユーザーにプッシュを送信するために、登録済みのアプリユーザーをこのテーブルにリンクする方法がわかりません。コードユーザーpidまたはデバイストークンで取得することは可能ですか?

どうもありがとう!

4

1 に答える 1

3

サーバー側とクライアント側の両方の観点で何が関係しているかについて多くの知識がない限り、APNSの任意のレベルを開発することはかなりの作業になる可能性があります。

覚えておくべきこと:

  1. サーバー側は、デバイスを更新または復元した場合、または新しいデバイスを取得した場合でも、デバイスごとにデバイス識別子(トークン)が変更されることを考慮する必要があります。
  2. クライアント側は、これらのプッシュ通知を適切に受け入れて処理し、開始を開始するために、アプリデリゲートに実装する必要があるデリゲートメソッドを考慮する必要があります。(例は以下に続きます)。
  3. サーバーは、適切な「フィードバック」サービスを設定しないと、プッシュ通知証明書がブラックリストに登録される可能性があることを再度認識する必要があります。これは、その識別子が存在するかどうかを確認し、存在しない場合はデータベースから削除して、そのユーザーにプッシュ通知を再度送信しようとしないようにします。
  4. サーバーでは、一度に1つの通知を送信するか(個々の通知の間に時間を置いて)、それらを大量にキューに入れてこれらの通知を「ストリーミング」することができます。本当にあなたはこれに従わなければなりません、さもなければあなたはブラックリストに載せられることができて、あなたのユーザーにプッシュ通知を再び送ることができなくなります。

あらゆる種類のプッシュ通知サーバーの作成に着手する前に、これらの4つのポイントを実際に理解する必要があります。

id (int)
token (int - 32 length)
dateChanged (dateTime)

リストされている3つのフィールドは、基本的なプッシュ通知サーバーに必要なすべてのものです。データベース内の個人ID、プッシュメッセージを受信するユーザーを知るためのデバイスエントリのトークン、およびdateChangedはオプションですが、データベースにこれを保持していた期間を知っておくとよいでしょう。

プッシュ通知の「ストリーミング」の概念に戻ります。基本的なPHPスクリプトを使用して一度に複数の通知を送信する方法を実際に調べる必要があります(サーバー全体を100行未満のコードでPHPで実行したため、次のことができます。クラスベースのPHPでは非常に単純です)。

コード:

残念ながら、基本的なプッシュサービスに必要なすべてのコードを配置するには多くのスペースが必要になりますが、上記のポイントと、以下に示すこのタスクの非常にすばらしいチュートリアルを確認することを強くお勧めします。

于 2012-08-28T16:03:04.377 に答える