2011-09-09 65 views
14

我不想使用FB的按鈕,顯然「共享」已被棄用。 我想要做的是讓用戶點擊我的網站上的「share」/「post to wall」,然後在他們的newsfeed /個人資料上發佈一篇文章,其中包含我網站/網址上的信息。分享按鈕/貼到牆上 - Facebook API?

我似乎無法找到任何代碼周圍,會做這個 - 沒有任何人有一個例子嗎?

,做他們必須先連接?或者可以檢查他們是否已登錄,如果沒有,登錄並自動共享?

謝謝!

回答

20

這是可能有兩種方式:

  • 您可以使用Facebook的Javascript SDK,如果你有一個應用程序:
FB.ui({ 
     method: 'feed', 
     link: 'absolute url', 
     name: 'testtitle', 
     caption: 'testcaption', 
     description: 'testdescription', 
     picture: 'absolute picurl', 
     message: '' 
    }); 

注意, 「消息」 必須是空的,你可以也只是刪除它。

  • 沒有一個應用程序(沒有用戶可以阻止應用程序,並從來沒有從應用程序什麼了,但只能使用彈出式): 打開一個彈出窗口,使用Javascript Facebook的分享者:

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

    請注意,一切都需要urlencoded。當然你也可以把它當作鏈接來使用。在這種情況下不要忘記og標籤。

編輯:請注意, 「汽車共享」 是不允許在Facebook上。你必須向用戶展示你想分享他的名字,他必須能夠接受並添加他的個人信息。無論如何只有應用程序和授權用戶纔有可能。

順便說一句,這兩種方法在這裏解釋,而無需用戶登錄/授權工作。

編輯2:現在還有一個「共享」方法FB.ui來發布鏈接或使用Open Graph Actions/Objects。

-2

如果你有一個動態的網站,像我一樣,你可以強烈地想我的代碼。

注意1:如果您沒有應用程序,則不能這樣做!如果你沒有 的應用程序,你可以簡單地去https://developers.facebook.com/apps和 創建一個。

注2:閱讀我的代碼註釋!

代碼:

<? 
$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> 

注: 不要忘記設置你的App ID代碼!

您需要使用函數curPageURL()才能共享當前的PHP頁面!

代碼:

<? 
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; 
} 
?> 

不要忘了聲明函數curPageURL()在我給你的代碼的開始!