【问题标题】:How to add a share functionality within facebook?如何在 facebook 中添加分享功能?
【发布时间】:2014-01-02 13:42:45
【问题描述】:

我在我的博客博客上使用了一个脚本,该脚本使用带有上一个和下一个按钮的外部源图像。该脚本包含 currentUrl 函数,用于在单击下一个或上一个按钮时创建页面印象。

我想添加 facebook 分享按钮,使用户能够分享他们正在查看的图片,但我相信它无法完成,因为我试图复制粘贴地址栏上的链接(由于图片而改变currentUrl 函数)在 facebook 上,但它无法检索与 url 关联的图像,是否可以对脚本进行任何更改,以便可以在社交媒体上共享图像? 帮助将不胜感激。 谢谢

HTML 代码:

<body onload="showPicNo(a)">
    <div id="picture"><img name="picturegallery"></div>
    <div id="navigation">
       <a href="javascript:bw()">previous</a> | <a href="javascript:fw()">next</a>
    </div>
  <body>

javascript代码:

var pics=new Array ("http://4.bp.blogspot.com/_UdzqQpb36Jo/R9kVS0h1BFI/AAAAAAAAD_o/SRGugAQSF0A/s1600/timming_pictures_37.jpg","https://lh3.googleusercontent.com/-et1BbdI-Dqk/UbM0JNa5VSI/AAAAAAAAAdw/cd6yN5HWvmc/s480-no/Funny+Lady+French+Kiss+With+Lion.jpg","https://lh3.googleusercontent.com/-pSwjTBzFDM0/UbMukN2vTbI/AAAAAAAAAbc/ZMLSTtO-JUk/w460-h511-no/funny-pictures-auto-woman-boobs-477558.jpeg")
var a=0;
var b = pics.length;
var currentUrl = document.URL;
var existsPicParameter = currentUrl.match(/picnoparam\S*/i);

var tmpPicParameter, tmpPicParameterOld;

if (existsPicParameter != null)
{
  tmpPicParameter = existsPicParameter[0].match(/picnoparam=\d+/i);
  if (tmpPicParameter != null)
  {
    a = parseInt(tmpPicParameter[0].match(/\d+/i));
    tmpPicParameterOld = tmpPicParameter[0];
  }
} else {
  a = Math.floor(Math.random() * (b - a)) + a;
}

function fw()
{
 if (a == (b - 1))
 {
  a = 0;
 } else {
  a++;
 }
 navigate(a);
}

function bw()
{
 if (a == 0)
 {
  a = b - 1;
 } else {
  a--
 }
 navigate(a);
}

function navigate(a)
{
 if (existsPicParameter == null)
 {
  if (currentUrl.indexOf("?") == -1)
  {
    currentUrl += "?";
  } else {
  currentUrl += "&";
  }
  currentUrl += "picnoparam="+a;
 } else {
  tmpPicParameter[0] = tmpPicParameter[0].replace(/\d+/i,a);
  currentUrl = currentUrl.replace(tmpPicParameterOld,tmpPicParameter[0]);
 }
  window.location.replace(currentUrl);
}

function showPicNo(picNumber)
{
  window.document.images["picturegallery"].src=pics[picNumber];
}

function randomPicture()
{
  erg = Math.floor(Math.random() * (b - a)) + a;
  showPicNo(erg);
}

【问题讨论】:

  • 所以实际的脚本可以工作,您是在寻求指导以在 facebook 中添加共享功能吗?如果是这样,你的标题是错误的
  • @Christian 是的,实际脚本运行良好,但它不适用于 facebook。我想在我的搞笑图片网站上实现分享按钮。该脚本会在每次加载图像时更改 url,但是当我将带有参数的 url 复制粘贴到 facebook 状态栏(以检查我是否可以使用共享按钮)时,它无法检索与该 url 关联的图像。我相信需要以某种方式修改脚本才能使用共享按钮。为了您对结构的理解,这是网站 url www.woofhits.com 及其托管在博客上。

标签: javascript jquery html facebook blogger


【解决方案1】:

您需要使用 Facebook Javascript SDK 来执行此操作。 - 这是一个简单的分享课程,我做了一个简单的分享。 https://github.com/DrewDahlman/Social-Sharing

【讨论】:

  • 我正在尝试实现您的共享课程。我已将所有这些代码包含在脚本标签下 var sharer = new SocialShare(); var share_obj = { app_id: 490866674364389, method: "feed", link: ""+document.URL, picture: ""+pics[a], name: "THE NAME DISPLAYED", caption: "THE CAPTION", 描述: “描述”}(链接和图片变量基于我的图像脚本)我在使用 sharer.facebook_share(share_obj); 时遇到问题;这应包含在脚本标记下还是作为链接的 HTML (a href)。
  • 您需要在 html 中包含 js ...您遇到的错误是什么?
  • 我没有收到任何错误,但我很难实现这一点,您提供的链接中几乎没有提供任何解释。
  • 你看例子了吗? github.com/DrewDahlman/Social-Sharing/blob/master/example.html 说得很清楚...
  • 示例中有一个加载SDK的JS。至于共享,将其包含在页面顶部,然后在底部放置 var sharer = ....
【解决方案2】:

我将功能添加到原始源代码中。回到正题:

基于How does the Facebook 'share' button on Stack overflow work? 我认为源代码有效,但不如预期。

如果您阅读提供的主题,您会发现以下句子:

Facebook 将解析该页面并抓取它找到的前几张图片

这就是您无法在 Facebook 中看到所选图片的原因。然后,如果 Facebook 解析给定的站点,它将找到一个空的图像标签。首先,javascript 在运行时分配图片地址。 Facebook 网站解析器为时已晚。 他也无法执行插入的 Javascript

并为我的问题提供解决方案?在我看来.. 不是为了纯粹的客户端图片展示。您必须接受只有静态图片才能用作 Facebook 上的图标。

P.S.:每个人都想告诉我我错了。我渴望学习新事物。

【讨论】:

  • 非常感谢您一路帮助我。我阅读了您在答案中引用的帖子并理解了一点。这意味着使用此图像脚本不是一个好主意,因为它不能被修改以用于社交共享,因为图像及其标题需要位于特定页面上,以便 Facebook 可以解析它。如果 JavaScript 不是图片网站的选项,我应该使用什么语言来实现这一点,请指教。我已经看到了这个Pictures Website,它在各个方面都非常有效,我想在我的网站上做同样的事情。
  • 上述网站采用了不同的方式。有代码在服务器端运行并始终生成一个新的有效网页。那么 Facebook 的解析器抓取图片就没有问题了。也许你应该从最底层的答案开始尝试。
  • 我正在尝试实现第二个答案中提供的 facebook javascript sdk 和共享类。我已经注册了一个 fb 应用程序并包含了 javascript sdk。我无法在共享类中填写这些字段 var share_obj = { app_id: YOUR_FACEBOOK_APP_ID, method: "feed", link: "LINK TO SHARE",图片:“图像的 URL 必须是绝对路径”,名称:“显示的名称”,标题:“标题”,描述:“描述”}
  • 我认为共享链接将是 +=document.url 但我不知道如何在数组中包含图像的绝对路径
  • 我认为分享链接的值为""+document.URL,图片的值为""+pics[a]。您写入其他变量的内容取决于您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多