【问题标题】:How does the Facebook 'share' button on Stack overflow work?堆栈溢出上的 Facebook“分享”按钮如何工作?
【发布时间】:2011-11-22 06:25:51
【问题描述】:

我希望在我们的网站上添加社交图标,让客户能够在他们的 facebook 和 twitter 个人资料上“点赞”、发推文和分享内容。我注意到在此框的左侧,facebook 和 twitter 图标完全完成了我想要完成的工作,但我不熟悉如何做到这一点。看源码,有JS引用:

<script type="text/javascript">
  StackExchange.ready(function() {
    var shareUrl = "http%3a%2f%2fstackoverflow.com%2fq%2f7505636%2f337690";
    var shareMsg = "Advice+integrating+Facebook+%27share%27+and+link%2fimage+capabilities+with+our+site";   
    StackExchange.share.facebook($("#fb-share-7505636"), shareUrl, shareMsg);
    StackExchange.share.twitter($("#twitter-share-7505636"), shareUrl, shareMsg);
});
</script>

我们的网站是这样工作的:虽然任何人都可以随时访问主网站,但个人可以使用自己的唯一 URL 注册为代表,该 URL 充当引荐来源,以给予奖励“信用”。我已经查看了 facebook 开发者网站,老实说,我有点不知所措。我想让我们的成员能够从他们的仪表板中单击 Facebook 图标,提示他们在墙上发布一组图片、一组标题和描述。我已经阅读了文档,这是通过在头部设置元标记来完成的,但这对我的网站似乎并不重要(或者我显然做错了)。

如果 facebook 正在寻找的 URL(共享 URL)位于受密码保护的页面或站点区域的后面,该区域不允许基于缺少的 PHP SESSION 变量的内容?

编辑

我在网上也看到很多说我必须集成 Facebook JS SDK,然后继续谈论身份验证/在墙上写字的权限等。是的,左边的链接 没有 请求允许做任何事情,除了 1) 登录 FB 帐户,2) 在用户的墙上发帖。 This site is a perfect example

上面的链接很棒,但它假设我需要授权一个不在此站点上出现的“共享”。

【问题讨论】:

    标签: php javascript facebook social-networking


    【解决方案1】:

    当您单击共享按钮时,您会调用 facebook.com 上的脚本,然后该脚本将依次访问查询字符串 (?u=xxxxxx) 中指向的页面。

    Facebook 将解析该页面并获取它找到的前几张图片、页面的描述和标题。这就是它向您显示的内容,并允许您添加一些额外的文本(以及编辑标题/描述/并选择不同的图像)。

    如果该页面包含 facebook 要求您添加到页面的特定元标记,那么他们将使用这些来填充标题/描述/图像。这允许网页作者控制他们的页面在 facebook 提要中的显示方式(尽管用户仍然可以在发布之前对其进行编辑)。这些元标记需要在 facebook 使用的特定页面中。

    如果 facebook 由于受密码保护等原因无法访问该页面 - 那么它无法解析元标记,然后只会向用户显示 URL 作为标题,没有描述和缩略图。

    【讨论】:

    • 在 FB 上调用了什么脚本以及它们如何获取内容?我相信它不止于此,因为我可以轻松替换上面 share.php 链接中的 URL,它将 发布到 facebook 墙上,但不包括图像或内容
    • 对不起,我指的是您在早期版本中的链接。所以这就是答案:一切都在 URL 中:http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fstackoverflow.com%2Fq%2F7505636%2F844726&amp;ref=fbshare&amp;t=How+does+the+Facebook+%27share%27+button+on+Stack+overflow+work%3F
    • 同样,sharer.php 脚本将在访问该页面时从该页面中获取图像/描述。
    • 之前的链接格式相同,站点不同,但我明白你在说什么。有没有办法让它从现有的 Facebook 页面中提取标题/描述/图像?也许这是一个完全不同的问题,但是如果我可以通过简单地修改元标记和链接来创建一个“共享”按钮,那么使用 JS SDK 2.0 或 PHP 3.0 SDK 之类的东西的目的是什么,而不是让用户登录到一个网站?
    • @JM4:StackExchange 函数用于构造分享页面的 URL 和弹出窗口。
    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 2013-08-21
    • 2019-05-18
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2011-05-16
    • 2019-02-11
    相关资源
    最近更新 更多