web-dev-qa-db-fra.com

Utiliser Facebook Graph pour poster simplement un message sur le mur avec juste javascript

Sur Facebook, comment puis-je poster un message sur le mur d'un utilisateur disant "J'ai obtenu 8/10 sur le jeu d'objets" puis une URL?

Je ne veux vraiment pas avoir à utiliser l'API complète, car je ne veux pas gérer les détails de connexion des utilisateurs. Cela ne me dérange pas si Facebook doit s'authentifier puis publier le message.

Est-il possible d'utiliser la nouvelle API Graph et JavaScript?

40
Glycerine

Remarque 16/04/2011: stream.publish semble avoir été déconseillé, il existe une nouvelle façon de le faire: http: // developers.facebook.com/docs/reference/dialogs/feed/

Vous pouvez utiliser quelque chose comme ça pour publier sur un mur, l'utilisateur devra confirmer avant de l'envoyer. N'oubliez pas que vous devrez utiliser FB.init et inclure le lien JS SDK.

 function fb_publish() {
     FB.ui(
       {
         method: 'stream.publish',
         message: 'Message here.',
         attachment: {
           name: 'Name here',
           caption: 'Caption here.',
           description: (
             'description here'
           ),
           href: 'url here'
         },
         action_links: [
           { text: 'Code', href: 'action url here' }
         ],
         user_Prompt_message: 'Personal message here'
       },
       function(response) {
         if (response && response.post_id) {
           alert('Post was published.');
         } else {
           alert('Post was not published.');
         }
       }
     );  
  }
58
Soufiane Hassou

Poster sur le mur affichera une boîte de dialogue pour partager le message sur le mur ou non. Mais je voulais publier le message en silence sur le mur de l'utilisateur, en supposant que l'utilisateur avait déjà donné l'autorisation "Publier sur le mur".

FB.api('/me/feed', 'post', {
      message:'my_message',
      link:YOUR_SITE_URL,
      picture:picture_url
      name: 'Post name',
      description: 'description'
 },function(data) {
      console.log(data);
 });
12
Nehal

Étant donné que vous disposez d'un proxy pour effectuer des appels interdomaines, vous pouvez simplement le faire ...

Dans cet exemple, YourProxyMethod prend un hachage jQuery.ajax comme, fait une publication côté serveur et renvoie la réponse dans les rappels de réussite/erreur. Tout proxy ordinaire devrait faire l'affaire.

L'astuce consiste à inclure app_id et access_token dans l'URL elle-même. En outre, votre application FB doit disposer des autorisations suffisantes pour effectuer cet appel.

YourProxyMethod({
  url : "https://graph.facebook.com/ID/feed?app_id=APP_ID&access_token=ACCESS_TOKEN",
  method : "post",
  params : {
    message : "message",
    name : "name",
    caption : "caption",
    description  : "desc"
  },
  success : function(response) {
    console.log(response);
  },
  error : function(response) {
    console.log("Error!");
    console.log(response);
  }
});
3
Mayank Jain