2010-12-01 6 views
6

Je veux afficher un message différent si un utilisateur est actuellement connecté à facebook et aime la page actuelle. Je comprends:facebook graph api déterminer si l'utilisateur aime l'URL

FB.Event.subscribe('edge.create', function(response) { 
    // you like this 
}); 

qui se déclenche lorsqu'un utilisateur aime la page, mais quand vous rechargez la page comment déterminez-vous qu'ils déjà comme la page en cours?

Merci!

Répondre

0

de l'API graphique, vous pouvez obtenir les goûts d'un utilisateur par son identifiant, comme:

https://graph.facebook.com/ID/CONNECTION_TYPE

donc pour obtenir les gens que vous mettez votre jeton d'accès et:

https://graph.facebook.com/me/likes?access_token=2222222222222222

puis recherchez votre page si elle est aimée ou non.

Cependant, vous pouvez toujours essayer les requêtes FQL que je n'ai pas essayé de faire en réalité.

J'espère que cela a aidé.

+0

Vous avez besoin du jeton d'accès ** de l'utilisateur ** pour cela. – ceejayoz

+0

oui j'ai mentionné que dans le deuxième exemple lien – Rabea

2

Sentez-vous décrire la page comme "page actuelle" Je comprends qu'il est dans un onglet iframe. Si tel est le cas, une demande signée vous fournit cette information sous la forme $decode_signed_request = array('page' => array('liked' => true/false)).

Sinon, vous pouvez fournir une page de canevas avec les paramètres GET fb_page_id, qui doit inclure le paramètre fb_sig_added à la requête du serveur avec un 0/1 selon si l'utilisateur est fan de cette page. (Cela peut nécessiter de désactiver OAuth 2.0 dans vos paramètres de migration)

Si vous parlez du plugin social similaire avec une URL de graphique ouverte, vous ne pouvez pas savoir si l'utilisateur est un ventilateur sans installation d'application. Si vous avez ce que vous pouvez faire un appel API à /me/likes qui renverra une liste de tous les goûts que l'utilisateur a, et la recherche de l'ID de l'objet que vous testez.

+0

Cela fonctionne uniquement lorsque l'application est définie comme un onglet de la page facebook. Et dit si l'utilisateur actuel a aimé ou non cette page facebook. – challet

+0

Ma supposition originale est basée sur cela comme indiqué dans ma première phrase. Sinon, vous devez installer une application. Vous pouvez également stocker un drapeau que l'utilisateur a aimé dans une session backend, lorsqu'il clique sur le bouton "J'aime". – Bryan

3

Je suis sûr que vous ne pouvez pas faire ce que vous voulez (dans ce contexte).

Jetez un oeil à cette page: http://fbrell.com/fb.api/does-like

Vous avez besoin que vous voyez à l'utilisateur d'approuver l'autorisation d'afficher les goûts.

C'est un énorme risque pour la sécurité de permettre à quelqu'un de voir les «j'aime» d'un utilisateur - même pour la page en cours. Pensez-y, vous pouvez facilement usurper la page actuelle et prétendre être n'importe quelle page.

MAIS ...

Ce que je vous recommande de faire est juste placé un cookie pour votre propre bénéfice (en javascript) lorsque l'utilisateur 'aime votre page. En supposant que vous obtenez un grand pourcentage de vos «J'aime» de cette page, vous pouvez corréler en toute sécurité la présence du cookie avec un «J'aime».

J'ai vu des exceptions de sécurité faire cela, mais cela semble fonctionner (au moins dans Chrome).

1

Vous êtes plus en sécurité en utilisant l'API Graph puisque Facebook est en train de déprécier son API REST.Donc, pour obtenir si un utilisateur aime votre page, vous aurez besoin de l'identifiant de la page et le jeton d'accès de votre application.

https://graph.facebook.com/me/likes/PAGE_ID?format=json&access_token=ACCESS_TOKEN

  • Où page_id est l'identifiant de la page que vous souhaitez vérifier.
  • et ACCESS_TOKEN est le jeton d'accès de vos applications.
+1

fonctionne uniquement avec des pages facebook, pas avec une URL. – challet

0

Enregistrer ID utilisateur ou third_party_id dans la base de données lorsque l'utilisateur a ajouté le lien

pour obtenir third_party_id

graph.facebook.com/me/?fields=third_party_id~~V~~3rd & access_token = xxx

0
https://graph.facebook.com/{FB_USER_ID}?fields=likes.target_id(167584559969748)&access_token={VALID_ACCESS_TOKEN} 

affiche des données si cet utilisateur a aimé cette page fan Facebook.

ou

https://graph.facebook.com/{FB_USER_ID}?fields=likes.fields(link) 

montre une liste de liens bien plu, d'où vous pouvez obtenir le lien que vous recherchez.

Tous ceux-ci ont besoin des permissions 'user_likes' et/ou friend_likes.

Questions connexes