easyapns notifications personnelles à un utilisateur
Astram
Membre
Salut à tous,
j'ai une appli qui nécessite une connexion de l'utilisateur ( à l'ouverture de l'appli => login/mdp ).
Je voudrai ajouter les notifications push à mon appli dans le but d'envoyer des notifications personnelles à chaque utilisateur (suivant les évolutions de son compte). Seulement je rencontre des problèmes dans la conception du service.
Je veux utiliser easyapns qui me semble pratique.
Cependant, mon probème est que l'enregistrement du device se passe à l'ouverture (application:(application:didFinishLaunchingWithOptions:), mais à ce moment la l'utilisateur peut ne pas être connecté à son compte. Deux problèmes :
1 - Au niveau de mon provider, quand je vais créer une notification, je ne pourrai pas savoir à quel deviceToken correspond un utilisateur.
2 - si l'utilisateur se déconnecte de son compte (et/ou qu'un autre utilisateur se connecte sur le même iPhone directement après la déconnexion du précédent) comment faire pour ne plus envoyer les notifications de l'ancien utilisateur et prévenir le provider que c'est le nouvel utilisateur qui utilise ce deviceToken?
merci
j'ai une appli qui nécessite une connexion de l'utilisateur ( à l'ouverture de l'appli => login/mdp ).
Je voudrai ajouter les notifications push à mon appli dans le but d'envoyer des notifications personnelles à chaque utilisateur (suivant les évolutions de son compte). Seulement je rencontre des problèmes dans la conception du service.
Je veux utiliser easyapns qui me semble pratique.
Cependant, mon probème est que l'enregistrement du device se passe à l'ouverture (application:(application:didFinishLaunchingWithOptions:), mais à ce moment la l'utilisateur peut ne pas être connecté à son compte. Deux problèmes :
1 - Au niveau de mon provider, quand je vais créer une notification, je ne pourrai pas savoir à quel deviceToken correspond un utilisateur.
2 - si l'utilisateur se déconnecte de son compte (et/ou qu'un autre utilisateur se connecte sur le même iPhone directement après la déconnexion du précédent) comment faire pour ne plus envoyer les notifications de l'ancien utilisateur et prévenir le provider que c'est le nouvel utilisateur qui utilise ce deviceToken?
merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si c'est Bernadette qui s'est connectée mais que c'est Gérard qui utilise l'iPhone au quotidien, Gérard verra donc les notifications de Bernadette.
Tu enverras toujours la notif au même téléphone, pas à un téléphone différent, donc tu utiliseras le même deviceToken dans les deux cas, que ce soit pour envoyer les notifications de Benadette à Bernadette quand c'est elle qui s'est connectée pour la dernière fois sur cet iPhone, et pour envoyer les notifications de Gérard à l'iphone quand c'est Gérard qui s'est connecté en dernier.
C'est au niveau du serveur qu'il faut regarder dans ta base quel utilisateur a été associé à ton deviceToken la dernière fois, et n'envoyer la notification à l'iPhone que si cette notification est destinée à l'utilisateur en question, par exemple.
Donc à chaque fois dans ton application qu'un utilisateur se connecte, tu dois envoyer une requête à ton serveur déjà pour effectuer la connexion (vérifier le mot de passe, connecter l'utilisateur à son compte, retourner les infos de compte, etc), bah à ce moment là tu en profites pour associer dans ta base MySQL sur ton serveur ledit utilisateur qui vient de se connecter avec le deviceToken dudit device (quitte à envoyer ce deviceToken dans ta requête de login si besoin). Comme ça à tout moment côté serveur tu peux savoir dans ta base MySQL quel utilisateur s'est connecté en dernier avec tel téléphone.
D'ailleurs, votre idée n'est pas si bonne que ça, parce que si Bernadette se connecte avec le même terminal, alors le tokenID sera associé à Bernadette, et plus avec Gérard, qui ne recevra alors plus les notifications. On aura donc le problème inverse. Cependant, cette solution est meilleure en terme de confidentialité.
Oui, mais c'est ce qui est recherché, si Bernadette se connecte avec l'iPhone de Gérard, Gérard ne sera donc plus connecté et ne doit donc plus recevoir les notifications.
De toute façon, ça ne reste pas simple /smile.png' class='bbc_emoticon' alt=':)' />
Donc avant d'envoyer une notif, je vérifirai que l'identifiant de l'utilisateur précisé dans le message correspond bien à l'identifiant actif sur le device avec le device_token souhaité.
Je m'y perd un peu.../smile.png' class='bbc_emoticon' alt=':)' />
Quand l'utilisateur se connecte, je remplis ce champ. Quand il se déconnecte, je vide ce champ.
Quand quelqu'un commente un post d'un utilisateur, je veux envoyer une notification à son iPhone si l'utilisateur est connecté. Donc je récupère le deviceID associé à l'utilisateur, ce qui me permet d'accéder à la bonne entrée dans apns_devices et je peux envoyer la notif comme d'hab. Si l'utilisateur s'est déconnecté, il n'y a plus de deviceID en face de son nom dans ma table user, donc j'envoie pas de notif.