2010-04-27 5 views
39

Sur Facebook comment puis-je poster un message sur le mur d'un utilisateur en disant "J'ai marqué 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 de l'utilisateur. Cela ne me dérange pas si Facebook doit s'authentifier et ensuite poster le message. Est-il possible d'utiliser la nouvelle API graphique et JavaScript?Utiliser Facebook Graph pour simplement poster un message mural avec juste javascript

+0

Avez-vous besoin que pour être « automatique » ou est-il correct d'avoir un « Publier sur mon mur » de l'utilisateur? –

+0

Post à mon mur serait celui que je voudrais. Je veux juste que l'utilisateur ait l'option de l'envoyer à son mur. – Glycerine

+0

Quelle chance - puisque le faire automatiquement a tendance à demander plus d'efforts pour aller chercher les permissions, de toute façon. – Matchu

Répondre

58

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

Vous pouvez utiliser quelque chose comme ceci à publier sur un mur, l'utilisateur besoin de confirmer avant d'être envoyé. 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.'); 
     } 
     } 
    ); 
    } 
+0

Avis de non-responsabilité: ne pas avoir fait un test du code, mais il semble correct. – Matchu

+4

Je l'ai copié à partir d'un de mes codes de travail. La fonction est testée :) –

+2

F * cking vous aime les gars. Je vais essayer ce soir. – Glycerine

3

Considérant que vous avez un proxy pour faire des appels inter-domaines, vous pouvez tout simplement faire ...

Dans cet exemple, YourProxyMethod prend un jQuery.ajax comme hachage, fait un poste côté serveur & renvoie la réponse dans les rappels de succès/erreur. Tout mandataire régulier devrait faire.

L'astuce consiste à inclure id_id et access_token dans l'URL. 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); 
    } 
}); 
12

Post on wall affiche 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 "Post on wall".

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); 
}); 
+0

Pouvez-vous mettre à jour votre réponse et la renvoyer à nouveau ici? J'ai essayé votre code et il dit que l'utilisateur ne vous permet pas de poster quoi que ce soit. –

Questions connexes