2012-08-22 7 views
1

Je n'arrive pas à trouver une bonne documentation sur l'utilisation de javascript pour savoir si un bouton J'aime est cliqué ou non. Je ne peux pas utiliser un événement sur clic, car le bouton peut déjà être vérifié lorsqu'un utilisateur arrive sur ma page, mais cela semble être tout ce que je peux trouver concernant le suivi des préférences externes (sans compter les autres méthodes qui ne sont plus supportées). Quelqu'un a-t-il de l'expérience avec de tels problèmes? Merci.Facebook Like Button - Est-il vérifié?

+0

Je suis sûr qu'il y a quelque chose dans l'API. Si ce n'est pas le cas, regardez si le bouton a une 'classe' spécifique quand elle est cochée. – Blender

+0

J'ai essayé de regarder mais l'API de facebook est carrément difficile de trouver des réponses solides et/ou des exemples (sans compter qu'il semble y avoir beaucoup de documentation obsolète encore en place). Je vais jeter un coup d'oeil pour voir si une classe spécifique est appliquée, mais à première vue, elle ne semble pas en avoir. –

Répondre

0

Cela dépend du bouton J'aime. S'il est un objet Facebook qui a une carte d'identité, vous pouvez interroger la comme la table (mais vous aurez besoin user_likes permission)

Si c'est une URL, il est pas vraiment possible: facebook graph api determine if user likes url [stackoverflow]

C'est pour un built-in like que vous pourriez utiliser un cookie pour mémoriser le clic, ou enregistrer le clic dans votre propre base de données.

0

Juste pour développer la réponse de Gil. Pour goûts intégrés, vous pouvez utiliser une demande de lot composé de deux demande: 1) Essayez d'aimer l'objet en question 2) S'il n'y avait pas d'erreur, supprimer la connexion comme

lot Exemple:

[{"method":"POST", "relative_url":"me/og.likes", "body":"object=<SOME_URL>", "name":"like-attempt", "omit_response_on_success": false}, 
{"method":"DELETE", "relative_url":"{result=like-attempt:$.id}"}] 

Si un objet a déjà été ajouté, la réponse du lot serait:

[ 
    { 
     "code": 400, 
     "headers": [ 
      ... 
      { 
       "name": "WWW-Authenticate", 
       "value": "OAuth \"Facebook Platform\" \"invalid_request\" \"(#3501) User is already associated to the object object on a unique action type Like. Original Action ID: 143539809123515\"" 
      } 
     ], 
     "body": "{\n \"error\": {\n \"message\": \"(#3501) User is already associated to the object object on a unique action type Like. Original Action ID: 143539809123515\",\n \"type\": \"OAuthException\",\n \"code\": 3501\n }\n}" 
    }, 
    null 
] 

donc, pour vérifier si l'objet a été aimé, JSON.parse le premier corps de réponse et de chercher une erreur avec le code d'erreur 3501. Gardez à l'esprit que le code d'erreur réel n'est documenté nulle part, donc il pourrait changer, bien que je ne pense pas que ce soit probable.