如何在我的网站上添加Facebook分享按钮?

问题描述 投票:0回答:8
javascript facebook facebook-javascript-sdk share facebook-social-plugins
8个回答
326
投票

您不需要所有这些代码。您所需要的只是以下几行:

<a href="https://www.facebook.com/sharer/sharer.php?u=example.org" target="_blank">
  Share on Facebook
</a>

25
投票

您可以使用 facebook 提供的异步 Javascript SDK 来做到这一点

看看下面的代码

FB Javascript SDK初始化

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'YOUR APP ID', status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>

注意:请记住将您的应用程序 ID 替换为您的 facebook AppId。如果您没有 facebook AppId 并且不知道如何创建,请检查此

添加 JQuery 库,我更喜欢 Google 库

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>

添加分享对话框(您可以通过设置参数自定义此对话框

<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: 'http://www.groupstudy.in/articlePost.php?id=A_111213073144',
picture: 'http://www.groupstudy.in/img/logo3.jpeg',
caption: 'Top 3 reasons why you should care about your finance',
description: "What happens when you don't take care of your finances? Just look at our country -- you spend irresponsibly, get in debt up to your eyeballs, and stress about how you're going to make ends meet. The difference is that you don't have a glut of taxpayers…",
message: ""
});
});
});
</script>

现在终于添加图像按钮了

<img src = "share_button.png" id = "share_button">

欲了解更详细的信息。请点击这里


15
投票

您可以在 Facebook 开发者网站阅读有关共享按钮的更多信息

工作JSFIDDLE

另请查看自定义 Facebook 分享按钮 JSFIDDLE

在打开

<body>
标签后立即包含 Facebook JavaScript SDK 代码

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

并将下面的代码放在您想要显示 Facebook 分享按钮的任何位置

<div class="fb-share-button" data-href="https://developers.facebook.com/docs/plugins/" data-width="200" data-type="button_count"></div>

enter image description here

检查工作情况JSFIDDLE


7
投票

对于 Facebook 共享 图像,没有 API 并使用

#
深度链接到子页面,技巧是将图像共享为
picture=


变量
mainUrl
将是
http://yoururl.com/

var d1 = $('.targ .t1').text();
var d2 = $('.targ .t2').text();
var d3 = $('.targ .t3').text();
var d4 = $('.targ .t4').text();
var descript_ = d1 + ' ' + d2 + ' ' + d3 + ' ' + d4;
var descript = encodeURIComponent(descript_);

var imgUrl_ = 'path/to/mypic_'+id+'.jpg';
var imgUrl = mainUrl + encodeURIComponent(imgUrl_);

var shareLink = mainUrl + encodeURIComponent('mypage.html#' + id);

var fbShareLink = shareLink + '&picture=' + imgUrl + '&description=' + descript;
var twShareLink = 'text=' + descript + '&url=' + shareLink;

// facebook
$(".my-btn .facebook").off("tap click").on("tap click",function(){
  var fbpopup = window.open("https://www.facebook.com/sharer/sharer.php?u=" + fbShareLink, "pop", "width=600, height=400, scrollbars=no");
  return false;
});

// twitter
$(".my-btn .twitter").off("tap click").on("tap click",function(){
  var twpopup = window.open("http://twitter.com/intent/tweet?" + twShareLink , "pop", "width=600, height=400, scrollbars=no");
  return false;
});

3
投票

这个Facebook页面有一个简单的工具来创建各种分享按钮。

例如,这是我得到的一些输出:

<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v8.0" nonce="dilSYGI6"></script>
<div class="fb-share-button" data-href="https://www.mocacleveland.org/exhibitions/lee-mingwei-you-are-not-stranger" data-layout="button" data-size="small">
<a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.mocacleveland.org%2Fexhibitions%2Flee-mingwei-you-are-not-stranger&amp;src=sdkpreparse" class="fb-xfbml-parse-ignore">Share</a>
</div>

2
投票

分享对话框无需登录Facebook

您可以使用带有 share 方法参数的 FB.ui 函数来触发共享对话框来共享链接。通过执行到 URL 的完整重定向,可以在适用于 JavaScript、iOS 和 Android 的 Facebook SDK 中使用此对话框。

您可以触发此呼叫:

FB.ui({
  method: 'share',
  href: 'https://developers.facebook.com/docs/', // Link to share
}, function(response){});

您还可以在此 URL 的页面上包含开放图元标签,以自定义分享回 Facebook 的故事。

请注意,仅当使用您的应用程序的人通过 Facebook 登录对您的应用程序进行了身份验证时,才会出现 response.error_message。

您还可以通过 Javascript Facebook SDK 直接与通话共享链接。

https://www.facebook.com/dialog/share&app_id=145634995501895&display=popup&href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F&redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer

https://www.facebook.com/dialog/share&app_id={APP_ID}&display=popup&href={LINK_TO_SHARE}&redirect_uri={REDIRECT_AFTER_SHARE}
  • app_id => 您的应用程序的唯一标识符。 (必填。)

  • redirect_uri => 用户单击对话框上的按钮后重定向到的 URL。使用 URL 重定向时需要。

  • display => 确定对话框的呈现方式。

如果您使用 URL 重定向对话框实现,那么这将是一个完整的页面显示,显示在 Facebook.com 中。这种显示类型称为页面。 如果您使用我们的 iOS 或 Android SDK 之一来调用该对话框,则会自动指定该对话框并为设备选择适当的显示类型。 如果您使用的是 Facebook SDK for JavaScript,则对于登录到您的应用程序的用户来说,这将默认为模式 iframe 类型,或者在 Facebook.com 上的游戏中使用时采用异步模式,而对于其他人来说,则默认为弹出窗口。如有必要,您还可以在使用 Facebook SDK for JavaScript 时强制使用弹出窗口或页面类型。 移动网络应用程序将始终默认为触摸屏类型。 分享参数

  • href => 这篇文章所附的链接。使用方法共享时需要。在该 URL 的页面中包含开放图元标记,以自定义共享的故事。

1
投票

对于您自己的特定服务器或不同的页面和图像按钮,您可以使用类似的东西(仅限 PHP)

<a href="http://www.facebook.com/sharer/sharer.php?u=http://'.$_SERVER['SERVER_NAME'].'" target="_blank"><img src="https://i.sstatic.net/rffGp.png" /></a>

我无法分享这个片段,但你会明白的......


0
投票

最近 Facebook 标记了我们用于登录的非常简单的应用程序,因为

sharer.php
页面似乎已损坏:https://developers.facebook.com/community/threads/1037356734639128/ 其他人报告了同样的问题,Facebook 没有回复,也没有充分回复我们的应用争议。奇怪的是
sharer.php
与我们的 Facebook 应用程序根本没有任何关联。

我们所做的是修改旧代码,不再使用

sharer.php
,而是这样做:

let url = "https://www.example.com";
let shareUrl = 'https://www.facebook.com/share_channel/?link=' + url + '&source_surface=external_reshare&display&hashtag';

人们也可以做这样的事情:

let shareUrl = 'https://www.facebook.com/share_channel/?link=' + window.location.href + '&source_surface=external_reshare&display&hashtag';

也可以包含您的应用程序 ID,但我不知道这可能有什么好处/坏处。我们暂时将其保留。

let url = "https://www.example.com";

let shareUrl = 'https://www.facebook.com/share_channel/?link=' + url + '&app_id=000000000000000&source_surface=external_reshare&display&hashtag';

我们使用内联 JS 来调用包装此函数的函数,但使用单击处理程序或任何其他数量的方法来构建 URL 并将其附加到按钮/链接也可以轻松执行相同的操作。

这些 URL 的来源是 https://www.facebook.com/share/,它会重定向到 https://www.facebook.com/share_channel/

© www.soinside.com 2019 - 2024. All rights reserved.