web-dev-qa-db-fra.com

"J'aime" une page à l'aide de l'API Facebook Graph

En utilisant l'API graphique, j'aimerais pouvoir avoir un utilisateur autorisé "comme" une page.

J'ai essayé de poster ce qui suit

https://graph.facebook.com/${PAGE_ID}/likes?access_token=${ACCESS_TOKEN}

Et j'obtiens une erreur HTTP 500 accompagnée de "Paramètre post_id non valide" dans le corps de la réponse JSON. On dirait que le /likes _ ressource convient pour aimer un poteau mural et non une page. Comment puis-je obtenir que cela fonctionne avec une page?

70
Tom Wells

Facebook a annoncé son soutien pour aimer les URL en dehors de Facebook en utilisant l'action officielle action intégrée Like . Vous devez avoir publish_actions autorisations. L'URL du graphique pour cela est: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

Cependant, vous ne pouvez pas utiliser ceci pour aimer une page sur Facebook actuellement, car la documentation indique :

Pour les pages Facebook ou les sites Web qui ne s'intègrent pas à l'authentification Facebook, les développeurs doivent continuer à utiliser le plug-in social du bouton J'aime.

41
bkaid

Mise à jour juin 2016

Il n’est toujours pas possible d’aimer une page utilisant l’API de Facebook, comme indiqué dans le /{user_id}/likespage de documentation à propos de la création/mise à jour/suppression:

Vous ne pouvez pas effectuer cette opération sur ce noeud final.

Dans les versions précédentes, le message était plus clair (voir la citation ci-dessous), mais le résultat est le même: ce n'est pas possible.

mai 2014

Le /{user-id}/likes page de documentation États sur Publication Likes sur Facebook Pages:

Vous ne pouvez pas publier à l'aide de cet Edge, car , il n'est pas possible d'aimer une page Facebook via une API . Vous devez utiliser le bouton J'aime si vous voulez que les gens puissent aimer une page de votre application.

C’est l’affirmation la plus évidente et la plus claire qui m’ait permis de répondre à la question.

10
Tamer Shlash

Si vous souhaitez utiliser cette fonctionnalité dans un onglet de page ou une page de canevas dans Facebook (par exemple, pour autoriser à aimer la page depuis une page identique), un travail autour de vous peut inclure ce que Tom Wells a suggéré dans sa réponse à Luke. Vous intégrez d’abord la version iframe de leur bouton "J'aime" sur votre page, puis écoutez simplement le fichier Edge.create événement dans votre JS comme suit:

FB.Event.subscribe('Edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
        // ...
    }
);

Dans le rappel, vous pouvez traiter de ce qui se passe lorsque l'utilisateur a aimé la page, par exemple, en s'éloignant de la page de la même porte ou en affichant du contenu aimé uniquement.

Lorsque l'utilisateur clique sur le bouton J'aime de iFrame, votre code JS doit recevoir le Edge.create événement en supposant que l’iFrame a été configuré pour pointer vers l’URL de la page en question.

5
Keith

si votre application est une application graphique ouverte, vous pouvez maintenant utiliser l’API sans avoir besoin du bouton.

https://developers.facebook.com/docs/opengraph/actions/builtin/likes/

5
Israhack

Je pense que cela n'est pas autorisé, sauf pour des sites partenaires spécifiques, tels que Yelp. La raison en est la sécurité, vous pourriez mettre du javascript sur une page et demander à tous ceux qui visitent cette page de "l'apprécier" à leur insu.

Voir Comment "aimer" une URL? sur le forum des développeurs de la plateforme Facebook

3
Luke

Vous pouvez aimer un objet avec son identifiant d'objet en utilisant Facebook api en utilisant le code suivant

[FBRequestConnection startForPostWithGraphPath:[NSString stringWithFormat:@"/%@/likes",{object_id}] graphObject:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
   //do you customisation post like here
}];
0
Avinash