2011-09-09 9 views
14

Non voglio usare il pulsante FB like e apparentemente "share" è stato deprecato. Quello che sto cercando di fare è far sì che gli utenti facciano clic su "condividi"/"postare sul muro" dal mio sito Web, e quindi inserisca un post sul loro newsfeed/profilo con informazioni sul mio sito web/url.Pulsante Condividi/pubblica sulla bacheca - Facebook API?

Non riesco a trovare alcun codice in giro che lo faccia, qualcuno ha un esempio?

E devono prima connettersi? O può controllare se sono loggati, in caso contrario, accedere e condivide automaticamente?

Grazie!

risposta

20

questo è possibile in due modi:

  • È possibile utilizzare il JavaScript SDK se si dispone di un app:
FB.ui({ 
     method: 'feed', 
     link: 'absolute url', 
     name: 'testtitle', 
     caption: 'testcaption', 
     description: 'testdescription', 
     picture: 'absolute picurl', 
     message: '' 
    }); 

nota che "il messaggio" deve essere vuoto, è possibile anche solo rimuoverlo.

  • Senza un app (nessun utente può bloccare l'applicazione e mai ottenere nulla dalla app più, ma possibile solo con pop-up): aprire una finestra pop-up con JavaScript per il facebook condivisore:

    http://www.facebook.com/sharer.php?u=<url to share>&t=<title of content> 
    

    Si noti che tutto deve essere urlencoded. Ovviamente puoi anche usarlo come link. E non dimenticare i tag og in questo caso.

Edit: Si prega di essere consapevole del fatto che "la condivisione di auto" non è consentito su facebook. devi presentare all'utente ciò che vuoi condividere nel suo nome e lui deve essere in grado di accettarlo e aggiungere il suo messaggio personale. sarebbe possibile solo con un'app e un utente autorizzato comunque.

Btw, entrambi i metodi illustrati qui funzionano senza accesso/autorizzazione utente.

Edit2: C'è anche un metodo "share" con FB.ui ora, per pubblicare un collegamento o utilizzare Open Graph Actions/Objects.

-2

Se si dispone di un sito Web dinamico come faccio io, si consiglia fortemente il mio codice.

Nota 1: non è possibile farlo se non si dispone di un'app! Se non hai l'app puoi semplicemente andare su https://developers.facebook.com/apps e crearne uno.

Nota 2: leggi i miei commenti sul codice!

Codice:

<? 
$redirect  = "http://www.SITE.com/thanks.html"; //After sharing, you redirect your visitor to thanks.html or just to the home page. Note that the URL given is the URL you set for your app! 
$link   = curPageURL(); //URL to the shared page (I will give you the function curPageURL() later). 
$title  = Title(); //Title of the shared page (Note If you don't have a dynamic website you can simply ignore the PHP part) 
$descriptionTag = Description(); //Description of the shared page 
$pic    = Img(); //Image of the post or the logo of your website 
echo "<script> 
     FB.init({appId: \"YOU_APP_ID_HERE\", status: true, cookie: true}); 
     function postToFeed() { 
      // calling the API ... 
      var obj = { 
      method: 'feed', 
      redirect_uri: '".$redirect."', 
      link: '".$link."', 
      picture: '".$pic."', 
      name: '".$title."', 
      caption: '".$descriptionTag."', 
      description: 'You_May_Want_To_Say_Something_About_Your_Web_Site_Here!' 
      }; 
      function callback(response) { 
      document.getElementById('msg').innerHTML = \"Post ID: \" + response['post_id']; 
      } 
      FB.ui(obj, callback); 
     } 
    </script>"; ?> 
<a href="#" onclick='postToFeed(); return false;'>Share To Facebook</a> 

Nota: Non dimenticare di impostare il proprio ID APP nel codice!

È necessario utilizzare la funzione curPageURL() per condividere la pagina PHP corrente!

Codice:

<? 
function curPageURL() { 
$pageURL = 'http'; 
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 
?> 

Non dimenticare di dichiarare la funzionecurPageURL()all'inizio del codice che sto dando a voi!

Problemi correlati