Bonjour,
J'ai créé un site web de révision du c2i. C'est une certification composé d'un qcm et d'une épreuve de bureautique. Mon site permet de s'entrainer sur des qcm auto corrigé.
Pour augmenter la motivation des étudiants j'ai fait un peu de gamification. Il est possible de défier ses amis sur 5 questions tirées au hasard.
C'est la qu'intervient l'API de Facebook. J'utilise la fonction sendrequest pour que mes users puissent inviter leur ami.
Cette fonction me génère un id_request que j'enregistre dans ma base de données avec l'id_user de la personne qui invite.
Quand une des personnes invitées se connecte sur facebook, elle reçoit une notifcation. C'est un lien qui comprend en paramètre l'id_request.
Quand la personne arrive sur mon site, je vérifie si dans $_GET y a un id_request. Si oui je cherche dans la base de donnée cet id_request et je génère le défi avec les id_user.
Ca marche très bien la première fois. Mais si j'envoie une deuxième request, l'id_request de la notification ne correspond pas à la reponse de ma fonction sendrequest.
Voici le console log de ma fonction sendrequest
Object {request: "1043755208997775", to: Array[1]}request: "1043755208997775"to: Array[1]0: "10206784699205533"
Le lien de la notification qui apparait : https://www.c2i-revision.fr/?fb_source=notification&request_ids=902087629838106%252C1619781231602430%252C1593450834252236&ref=notif&app_request_type=user_to_user¬if_t=app_request
On voit bien en gras les id_request différents. Ce qui est surprenant c'est que l'id_request de la notification n'a pas le même format que d'habitude. Il est compose de 3 valeur séparé par des %. La première valeur correspond à un id_request qui date de plusieurs jours.
Est ce quelqu'un peut m'expliquer pourquoi l'id_request de la notification ne correspond pas à l'id_request de ma fonction sendrequest. ?
PS : dans la doc de facebook, on trouve une méthode qui permet de supprimer des requests. Mais je ne comprends pas bien à quoi ca sert. C'est peut être une piste
PPS : vous pouvez tester le tout sur ici
Modifié par Orgone (08 Jul 2015 - 23:30)
J'ai créé un site web de révision du c2i. C'est une certification composé d'un qcm et d'une épreuve de bureautique. Mon site permet de s'entrainer sur des qcm auto corrigé.
Pour augmenter la motivation des étudiants j'ai fait un peu de gamification. Il est possible de défier ses amis sur 5 questions tirées au hasard.
C'est la qu'intervient l'API de Facebook. J'utilise la fonction sendrequest pour que mes users puissent inviter leur ami.
function sendRequest() {
FB.ui({
method: 'apprequests',
message: '5 questions sur l\'informatique. Qui de nous 2 aura le meilleur score ?',
title: 'Teste tes connaissances en informatique'
},
function (response) {
console.log(response);
json = JSON.stringify(response);
$.ajax(
{
type: "POST",
url: "ajax.php",
data: "invite_fb=" + json,
success: function (msg) {
...
}
})
})
Cette fonction me génère un id_request que j'enregistre dans ma base de données avec l'id_user de la personne qui invite.
Quand une des personnes invitées se connecte sur facebook, elle reçoit une notifcation. C'est un lien qui comprend en paramètre l'id_request.
Quand la personne arrive sur mon site, je vérifie si dans $_GET y a un id_request. Si oui je cherche dans la base de donnée cet id_request et je génère le défi avec les id_user.
Ca marche très bien la première fois. Mais si j'envoie une deuxième request, l'id_request de la notification ne correspond pas à la reponse de ma fonction sendrequest.
Voici le console log de ma fonction sendrequest
Object {request: "1043755208997775", to: Array[1]}request: "1043755208997775"to: Array[1]0: "10206784699205533"
Le lien de la notification qui apparait : https://www.c2i-revision.fr/?fb_source=notification&request_ids=902087629838106%252C1619781231602430%252C1593450834252236&ref=notif&app_request_type=user_to_user¬if_t=app_request
On voit bien en gras les id_request différents. Ce qui est surprenant c'est que l'id_request de la notification n'a pas le même format que d'habitude. Il est compose de 3 valeur séparé par des %. La première valeur correspond à un id_request qui date de plusieurs jours.
Est ce quelqu'un peut m'expliquer pourquoi l'id_request de la notification ne correspond pas à l'id_request de ma fonction sendrequest. ?
PS : dans la doc de facebook, on trouve une méthode qui permet de supprimer des requests. Mais je ne comprends pas bien à quoi ca sert. C'est peut être une piste
PPS : vous pouvez tester le tout sur ici
Modifié par Orgone (08 Jul 2015 - 23:30)