2011-09-09 33 views
14

Tôi không muốn sử dụng nút FB thích và dường như "chia sẻ" đã không được chấp nhận. Điều tôi đang cố gắng làm là cho phép người dùng nhấp vào "chia sẻ"/"đăng lên tường" từ trang web của tôi và sau đó đặt một bài đăng trên nguồn cấp dữ liệu/hồ sơ của họ với thông tin trên trang web/url của tôi.Nút chia sẻ/đăng lên tường - API Facebook?

Tôi dường như không thể tìm thấy bất kỳ mã nào xung quanh việc này sẽ thực hiện việc này- có ai có ví dụ không?

Và họ có phải kết nối trước không? Hoặc nó có thể kiểm tra xem họ đang đăng nhập, nếu không, đăng nhập và nó sẽ tự động chia sẻ?

Cảm ơn!

Trả lời

20

Điều này có thể theo hai cách:

  • Bạn có thể sử dụng facebook Javascript SDK nếu bạn có một ứng dụng:
FB.ui({ 
     method: 'feed', 
     link: 'absolute url', 
     name: 'testtitle', 
     caption: 'testcaption', 
     description: 'testdescription', 
     picture: 'absolute picurl', 
     message: '' 
    }); 

Lưu ý rằng "thông báo" PHẢI được sản phẩm nào, bạn có thể cũng chỉ cần loại bỏ nó.

  • Nếu không có một ứng dụng (không dùng có thể chặn các ứng dụng và không bao giờ có được bất cứ điều gì từ các ứng dụng nữa, nhưng chỉ có thể với cửa sổ bật lên): mở một cửa sổ popup với Javascript cho facebook sharer:

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

    Lưu ý rằng mọi thứ cần phải là urlencoded. Tất nhiên bạn cũng có thể sử dụng nó như một liên kết. Và đừng quên các thẻ og trong trường hợp này.

Chỉnh sửa: Xin lưu ý rằng "tự động chia sẻ" không được phép trên facebook. bạn phải trình bày cho người dùng những gì bạn muốn chia sẻ trong tên của mình và anh ấy phải có khả năng chấp nhận nó và thêm thông điệp cá nhân của mình. sẽ chỉ có thể có với ứng dụng và người dùng được ủy quyền.

Btw, cả hai phương pháp được giải thích tại đây hoạt động mà không cần đăng nhập/ủy quyền của người dùng.

Chỉnh sửa2: Ngoài ra còn có phương thức "chia sẻ" với FB.ui ngay bây giờ, để đăng liên kết hoặc sử dụng Hành động/đối tượng mở.

-2

Nếu bạn có trang web động như tôi làm, bạn có thể thực sự muốn mã của tôi.

Lưu ý 1: Bạn không thể làm điều đó nếu bạn không có ứng dụng! Nếu bạn không có một ứng dụng, bạn có thể chỉ cần truy cập https://developers.facebook.com/apps và tạo một ứng dụng.

Lưu ý 2: Đọc nhận xét mã của tôi!

Code:

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

Lưu ý: Đừng quên để thiết lập ID ứng dụng của bạn trong các mã!

Bạn cần sử dụng chức năng curPageURL() để chia sẻ trang PHP hiện tại!

Code:

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

Đừng quên khai báo hàmcurPageURL()vào đầu của mã Tôi đang đưa ra cho bạn!

Các vấn đề liên quan