Nút chia sẻ Facebook và văn bản tùy chỉnh [đã đóng]


93

Có cách nào để tạo nút chia sẻ facebook đăng văn bản tùy chỉnh trên tường hoặc nguồn cấp tin tức không?


Câu trả lời:


94

Chúng tôi sử dụng một cái gì đó như thế này [sử dụng trong một dòng]:

<a title="send to Facebook" 
  href="http://www.facebook.com/sharer.php?s=100&p[title]=YOUR_TITLE&p[summary]=YOUR_SUMMARY&p[url]=YOUR_URL&p[images][0]=YOUR_IMAGE_TO_SHARE_OBJECT"
  target="_blank">
  <span>
    <img width="14" height="14" src="'icons/fb.gif" alt="Facebook" /> Facebook 
  </span>
</a>

4
Bạn có biết cách mở liên kết này trong cửa sổ bật lên hoặc cửa sổ phương thức không? Chỉ cần không thể tìm thấy một phương pháp mà các công trình, nó không đơn giản như sử dụng một số mã cửa sổ popup generic ...
tvgemert

1
Hiệu quả hơn thì câu trả lời trên đầu trang.
Mateng

29
@tvgemert: Hãy thử, <a class="facebook" target="_blank" onclick="return !window.open(this.href, 'Facebook', 'width=640,height=300')" href="http://www.facebook.com/sharer/sharer.php?u=YOUR_URL">Facebook</a>v.v.
Mateng

Hoàn hảo, điều này cũng hoạt động cho các url hashbang!
dvtoever

73
Điều này không còn hoạt động.
Chuck Le Butt

30

Để cung cấp các thông số tùy chỉnh cho chia sẻ facebook tốt hơn là chỉ cung cấp liên kết và facebook tự động nhận Tiêu đề + Mô tả + Hình ảnh từ trang mà bạn đang chia sẻ. Để "giúp" Facebook API tìm thấy những thứ đó, bạn có thể đặt những thứ sau vào tiêu đề của trang mà bạn đang chia sẻ:

<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />

Kiểm tra tại đây

Nếu trang không thuộc quyền kiểm soát của bạn, hãy sử dụng những gì AllisonC đã chia sẻ ở trên.

Đối với hành vi loại chế độ xem cửa sổ bật lên:

Sử dụng nút / liên kết / văn bản của riêng bạn và sau đó bạn có thể sử dụng kiểu xem phương thức của cửa sổ bật lên theo cách này:

<script type= 'text/javascript'>
$('#twitterbtn-link,#facebookbtn-link').click(function(event) {
var width  = 575,
    height = 400,
    left   = ($(window).width()  - width)  / 2,
    top    = ($(window).height() - height) / 2,
    url    = this.href,
    opts   = 'status=1' +
             ',width='  + width  +
             ',height=' + height +
             ',top='    + top    +
             ',left='   + left;

window.open(url, 'twitter', opts);

return false;
});
</script>

trong đó twitterbtn-link và facebookbtn-link đều là id neo.


Nếu các URL giống nhau, dữ liệu từ các thuộc tính meta có được lưu vào bộ nhớ cache của facebook không? Hoặc tôi có thể đưa vào, ví dụ: dữ liệu POST riêng lẻ với mọi lần xem trang?
Mateng

Tôi không hiểu ý bạn là gì.
ShayanK

Tôi vừa mới xem qua cái này. Tôi có mã thích / chia sẻ trên trang chủ của mình được đặt để thích / chia sẻ trang facebook được liên kết với doanh nghiệp của tôi. Có vẻ như nó đang bỏ qua các thẻ meta facebook mà tôi có trên trang. Có ai gặp phải vấn đề này không?
Chris Hawkins

1
Phương pháp này dường như không hoạt động nữa. Tôi nghĩ rằng cách duy nhất để có được nút chia sẻ Facebook tùy chỉnh (với văn bản, tiêu đề và hình ảnh của riêng bạn) là sử dụng SDK Facebook.
Ryan Coolwebs

Giải pháp tuyệt vời, để làm cho nó cũng trở nên hiện đại, if( window.open(.....) ) event.preventDefault();thay vì chỉ trả về false; ˙! - theo cách đó, nó chỉ ngăn chặn hành vi mặc định (mở liên kết) khi cửa sổ được mở - cung cấp dự phòng khi không ...
jave.web

12

sử dụng chức năng này có nguồn gốc từ liên kết do IJas cung cấp

function openFbPopUp() {
    var fburl = '';
    var fbimgurl = 'http://';
    var fbtitle = 'Your title';
    var fbsummary = "your description";
    var sharerURL = "http://www.facebook.com/sharer/sharer.php?s=100&p[url]=" + encodeURI(fburl) + "&p[images][0]=" + encodeURI(fbimgurl) + "&p[title]=" + encodeURI(fbtitle) + "&p[summary]=" + encodeURI(fbsummary);
    window.open(
      sharerURL,
      'facebook-share-dialog', 
      'width=626,height=436'); 
    return  false;
}

Hoặc bạn cũng có thể sử dụng Hàm FB.ui mới nhất nếu sử dụng FB JavaScript SDK để có chức năng gọi lại được kiểm soát nhiều hơn.

tham khảo: FB.ui

    function openFbPopUp() {
        FB.ui(
          {
            method: 'feed',
            name: 'Facebook Dialogs',
            link: 'https://developers.facebook.com/docs/dialogs/',
            picture: 'http://fbrell.com/f8.jpg',
            caption: 'Reference Documentation',
            description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
          },
          function(response) {
            if (response && response.post_id) {
              alert('Post was published.');
            } else {
              alert('Post was not published.');
            }
          }
        );
    }

FB.ui này có lẽ là cách tiếp cận đáng tin cậy nhất, ngoài ra bạn có thể tải tập lệnh này ở cuối trang cùng với phần còn lại của javascript và tải các biến / bộ chọn jquery dưới dạng giá trị. Cảm ơn vì đã đăng bài này.
klewis

@blackhawk ... nhưng FB.ui cũng yêu cầu app_id - đó không phải lúc nào cũng là một tùy chọn ... :)
jave.web

@Bravesh B Tìm kiếm tài liệu liên quan đến FB.ui mà bạn đã liên kết Tôi không thể tìm thấy các thông số bạn chuyển đến FB.ui như hình ảnh, chú thích, mô tả. Bạn có thể cho tôi biết bạn đã tìm thấy chúng ở đâu không?
Ferex

@Ferex, bạn có thể tìm thấy các thông số tại đây developer.facebook.com/docs/sharing/reference/feed-dialog
Bhavesh B

1
Kể từ ngày 18 tháng 4 năm 2017, các tham số sau không còn được hỗ trợ bởi API Đồ thị phiên bản 2.9 trở lên. Đối với phiên bản 2.8 và thấp hơn, các thông số sẽ tiếp tục làm việc cho đến khi 17 tháng 7, 2017.
Goran Jakovljevic

9

Bạn có một số tùy chọn:

  1. Sử dụng nút Chia sẻ FB chuẩn và đặt văn bản thông qua API Đồ thị mở và các thẻ meta trên trang của bạn.
  2. Thay vì chia sẻ, sử dụng FB.ui phương pháp stream.publish 's, cho phép bạn kiểm soát của URL, tiêu đề, chú thích, mô tả và hình thu nhỏ tại thời gian chạy.
  3. Hoặc sử dụng http://www.facebook.com/sharer.php với các thông số thích hợp.

2
Bạn có thể nói rõ hơn về cái sau không? Những thông số này là gì?
Jeroen Vannevel

6

Bạn có thể tùy chỉnh hộp thoại chia sẻ Facebook bằng cách sử dụng SDK JavaScript không đồng bộ do Facebook cung cấp và thiết lập các giá trị tham số của nó

Hãy xem đoạn mã sau:

<script type="text/javascript">
  $(document).ready(function(){
    $('#share_button').click(function(e){
      e.preventDefault();
      FB.ui(
        {
          method: 'feed',
          name: 'This is the content of the "name" field.',
          link: 'URL which you would like to share ',
          picture: ‘URL of the image which is going to appear as thumbnail image in share dialogbox’,
          caption: 'Caption like which appear as title of the dialog box',
          description: 'Small description of the post',
          message: ''
        }
      );
    });
  });
</script>

Trước khi sao chép và dán đoạn mã dưới đây, trước tiên, bạn phải khởi tạo SDK và thiết lập thư viện jQuery. Vui lòng nhấp vào đây để biết từng bước làm thế nào để thiết lập thông tin trên cùng một.


3

Đây là giải pháp hiện tại (tháng 12 năm 2014) và hoạt động khá tốt. Nó có tính năng

  • mở một cửa sổ bật lên
  • đoạn mã độc lập, không yêu cầu bất kỳ thứ gì khác
  • hoạt động có hoặc không có JS. Nếu JS bị tắt, cửa sổ chia sẻ vẫn mở, mặc dù không phải là một cửa sổ bật lên nhỏ.

<a onclick="return !window.open(this.href, 'Share on Facebook', 'width=640, height=536')" href="https://www.facebook.com/sharer/sharer.php?u=href=$url&display=popup&ref=plugin" target="_window"><img src='/_img/icons/facebook.png' /></a>

$ url var phải được xác định là URL để chia sẻ.


nó không hoạt động trong trường hợp trang của tôi bắt đầu bằng https ...?
d4v1dv00

1
Câu trả lời này là không hợp lệ bây giờ, khi Facebook đã ngừng hỗ trợ bất kỳ thông số khác trong sharer
Vikrant


-2

bạn có thể kết hợp ý tưởng của AllisonC với window.openhàm: http://www.w3schools.com/jsref/met_win_open.asp

function openWin(url) {
    myWindow = window.open(url, '', 'width=800,height=400');
    myWindow.focus();
}

Và sau đó trên mỗi liên kết, bạn gọi hàm openWin với url mạng xã hội phù hợp.


-3

Hãy thử trang web này http://www.sharelinkgenerator.com/ . Hi vọng điêu nay co ich.


3
Điều này không giải quyết được vấn đề trong đó mọi người đang tìm kiếm tiêu đề / mô tả tùy chỉnh
Eddie

với giải pháp của bạn không có khả năng để đưa văn bản tùy chỉnh với facebook xin vui lòng cho một giải pháp
RaviPatidar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.