HOWTO supprimer le périphérique jetons reçus par Apple IPA commentaires
Je suis réussir à télécharger Apple IPA de la rétroaction de données via PHP. La structure que je suis (après le traitement) ressemble à quelque chose comme ceci:
timestamp
dispositif de jeton
Ma question est comment savoir qui de l'appareil jetons dois-je retirer de ma base de données et arrêter l'envoi de notifications.
Le regardz,
Mladjo
Vous devez vous connecter pour publier un commentaire.
Le timestamp est l'élément crucial ici. L'horodatage envoyé par Apple indique la dernière fois que le service push tenté de livrer un message à l'appareil et a trouvé l'application à désinstaller. Si l'appareil a ré-enregistré avec votre service depuis lors, il n'est pas nécessaire de le supprimer.
Par conséquent, chaque fois que votre application charge et envoie le jeton à votre service, vous devez vous connecter à la fois dans votre magasin de données. Lorsque vous exécutez des commentaires, vous devriez vérifier le temps de Apple et de le comparer à l'heure vous avez reçu une mise à jour de l'application sur le périphérique. Si le temps Apple envoie est plus récente, puis le moment où vous avez reçu une mise à jour, alors vous devriez supprimer ou désactiver l'appareil. Si l'heure d'Apple est plus tôt que vous n'avez pas besoin de le supprimer, car l'utilisateur a réinstallé l'appareil depuis Apple de dernière essayé de livrer.
Tous les appareils donné par les commentaires sont "échoué" et doit être supprimé. Aucun retour n'signifie pas les appareils doivent être supprimés. Il est recouvert sur la Documentation d'Apple:
Apple APN Documentation
explication soignée @argon, cependant j'ai une autre question à propos de l'horodatage.
Chaque fois, quand une application permet de notification push, le dispositif de jeton est envoyé vers le serveur. Dois-je pris le timestamp à partir de mon serveur pour être persisté avec dispositif de jeton comme didRegisterForRemoteNotificationswithdevicetoken ne donne deviceToken et pas de temps. Si mon serveur fonctionne dans l'autre fuseau horaire et l'APN est en cours d'exécution à l'autre fuseau horaire, puis l'inscription dans le temps( avec dispositif de jeton) ne peut pas être comparé avec horodatage reçu de l'APN commentaires pour vérifier la séquence de registre -> désinstaller -> réenregistrer.
Je présume que les APNS commentaires d'horodatage est en UTC et l'heure, le serveur stocke avec dispositif de jeton doit être converti au format UTC avant de ranger l'ISO d'horodatage. De cette façon, l'horodatage sera dans le même fuseau horaire et diff case sera cohérente.
préciser
@fyasar,
De sorte que votre recommandation est de stocker l'appareil jeton contre l'id de l'appareil(ou une clé). Lorsqu'un retour est reçu par un dispositif de jeton, de supprimer ce dispositif de jeton de ligne de DB, droit? Si vous avez compris de droite, qui ne fonctionne pas dans le scénario ont été un utilisateur installe l'app, désinstalle et installe ensuite à nouveau toutes avec dans une courte durée, et le service de réponse a été interrogé uniquement après tout ce qui s'est passé. Dans ce cas, si l'horodatage dans les commentaires n'est pas considéré, dispositif de jeton sera supprimé ce qui est incorrect, car l'utilisateur a de nouveau installé l'application et réinscrit pour le push notification.
Ma question est-ce, comme le suggère l'apple doc et de nombreux blogs, sur l'enregistrement, lorsque le dispositif de jeton est persistant, d'horodatage doit être conservé avec elle. Le fuseau horaire de l'ISO, le temps devrait être conservé ou quel est le fuseau horaire sur lequel la rétroaction de service retourne le timestamp.
vous pouvez le comparer avec votre table de la dernière heure d'insertion, puis retirez le non valide jeton de db, Dans mon cas, je suis de l'utilisation de mysql et php pour rompre côté
il sera de retour dernière mise à jour de temps à partir de db et puis je viens de le convertir en époque timestamp en utilisant
et enfin je viens de comparer avec les apns commentaires d'horodatage, comme ce
Vous devez stocker les appareils avec leur appareil jeton de données, puis vous pouvez trouver ces appareils en fonction de leur dispositif de jetons. Vous pouvez utiliser l'appareil jeton d'identification de chaque appareil. Que serait facile à trouver et à changer leurs statuts dans votre db.