2

J'ai réussi à mettre en œuvre le « Envoyer la demande » fonctionnalité pour mon application sur facebook suivant les docs hereenvoyer la demande Facebook et obtenir une API FB cadeau

Maintenant, en cas l'utilisateur « A » accepte une demande envoyée à par l'utilisateur 'B', je veux que l'utilisateur 'B' obtienne un cadeau spécifique à l'application (image). Ma question est, comment pourrais-je savoir que c'était l'utilisateur 'B' qui a invité l'utilisateur 'A'? (et non utilisateur 'C')

Merci.

Répondre

5

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" 
} 
+0

merci, exactement ce dont j'avais besoin. – astralmaster

+0

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

+0

CBroe, bon point. J'ai ajouté l'alternative à la réponse. –

Questions connexes