Enregistrez l'ID de la demande dans votre base de données avec l'utilisateur B qui a lancé la demande.
Lorsque l'utilisateur A cliquera sur la demande, il sera redirigé vers votre application et Facebook vous enverra l'identifiant de la demande. Recherchez l'ID de demande dans votre db pour obtenir l'utilisateur qui a initié.
Quelques exemples d'obtention de l'identifiant de demande sont inclus dans le Facebook documentation about deleting requests.
Bien que ce ne soit pas technique, vous pouvez également consulter la documentation sur les demandes de meilleures pratiques qui a un section on gifting.
Une alternative est d'obtenir l'expéditeur à partir du graphique api (notez que c'est presque toujours plus lent que la solution ci-dessus). En concaténer le user_id au request_id vous avez un identifiant d'objet de demande spécifique, et vous pouvez émettre une GET
demande à l'API graphique qui ressemble à ceci:
https://graph.facebook.com/<REQUEST_OBJECT_ID>?access_token=APP_ACCESS_TOKEN
Dans la réponse, l'expéditeur est dans l'attribut from
:
{
"id": "259855964134806_4",
"application": {
"name": "Betcafe",
"namespace": "betcafe-play",
"id": "240039049434634"
},
"to": {
"name": "Zuck",
"id": "4"
},
"from": {
"name": "Todd Chaffee",
"id": "532338216"
},
"message": "Join my team so we can pass balls to each other and help Milan win the weekly cup!",
"created_time": "2012-09-10T16:43:45+0000"
}
merci, exactement ce dont j'avais besoin. – astralmaster
Vous n'avez __ réellement_ rien à stocker dans votre propre base de données, car Facebook fournit toutes les informations dont vous avez besoin. Quand un utilisateur accepte une requête, vous obtenez les identifiants de requête sur lesquels ils ont agi - et lorsque vous recherchez cela via l'API, vous obtenez l'utilisateur expéditeur dans une structure appelée 'from'. (Vous pourriez le faire quand même, pour accélérer les choses: chercher quelque chose dans votre propre base de données pourrait être plus rapide que faire une demande d'API.) – CBroe
CBroe, bon point. J'ai ajouté l'alternative à la réponse. –