2010-04-27 15 views
39

In Facebook, come posso inserire un messaggio sul muro di un utente che dice "Ho segnato 8/10 sul gioco di oggetti", quindi un URL?Utilizzo di Facebook Graph per pubblicare semplicemente un messaggio a muro con solo javascript

Non desidero davvero utilizzare l'API completa, poiché non desidero gestire i dettagli di accesso dell'utente. Non mi dispiace se Facebook ha bisogno di autenticarsi e quindi pubblicare il messaggio.

È possibile utilizzare la nuova API Graph e JavaScript?

+0

È necessario che sia "automatico" o che sia disponibile un "Post to my wall" dall'utente? –

+0

Post sul mio muro sarebbe quello che mi piacerebbe. Voglio solo che l'utente abbia l'opzione di inviarlo al loro muro. – Glycerine

+0

Che fortuna: dal momento che farlo automaticamente tende a richiedere più impegno nel recupero dei permessi, comunque. – Matchu

risposta

58

Nota 2011/04/16: stream.publish sembra essere stato deprecato, C'è un nuovo modo per farlo: http://developers.facebook.com/docs/reference/dialogs/feed/

Si può usare qualcosa di simile a pubblicare su un muro, l'utente è necessario confermare prima di essere inviato. Non dimenticare che dovrai utilizzare FB.init e includere il link 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

Disclaimer: non ho eseguito un test-run del codice, ma sembra giusto. – Matchu

+4

L'ho copiato da uno dei miei codici di lavoro. La funzione è testata :) –

+2

F * cking vi adoro ragazzi. Ci proverò stasera. – Glycerine

3

Considerando che si dispone di un proxy per effettuare chiamate tra domini diversi, si può semplicemente fare questo ...

In questo esempio, YourProxyMethod prende un jQuery.ajax come hash, fa un post lato server & restituisce la risposta in callback di successo/errore. Qualsiasi proxy regolare dovrebbe fare.

Il trucco è includere app_id e access_token nell'URI ir. Inoltre, l'app FB dovrebbe disporre di autorizzazioni sufficienti per effettuare questa chiamata.

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 mostrerà una finestra di dialogo per condividere il messaggio sul muro o no. Ma volevo pubblicare il messaggio silenziosamente sulla bacheca dell'utente, supponendo che l'utente avesse già dato il permesso "Posta sul muro".

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

Puoi aggiornare la tua risposta e reinserirla di nuovo qui? Ho provato il tuo codice e dice che l'utente non ti ha permesso di postare nulla. –

Problemi correlati