73

http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.google.com

如何自定义文本和图像。看起来 Facebook 取消了文档。

4

5 回答 5

79

您所说的是 Facebook 在您共享链接时提取的预览图像和文本。Facebook 使用开放图形协议来获取这些数据。

本质上,您所要做的就是将这些og:meta标签放在您要共享的 URL 上 -

<meta property="og:title" content="The Rock"/>
<meta property="og:type" content="movie"/>
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/"/>
<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>
<meta property="og:site_name" content="IMDb"/>
<meta property="fb:admins" content="USER_ID"/>
<meta property="og:description"
      content="A group of U.S. Marines, under command of
               a renegade general, take over Alcatraz and
               threaten San Francisco Bay with biological
               weapons."/>

如您所见,既有图像属性又有描述。当您更改页面og:meta标签时,您可以使用Facebook 调试器测试这些更改。它会告诉您是否犯了任何错误(以及如何修复它们!)

于 2012-09-22T19:56:45.667 回答
58

更新:

这个答案已经过时了。

就像@jack-marchetti 在他的评论中所说的那样,以及带有链接的@devantoine:https ://developers.facebook.com/x/bugs/357750474364812/

Facebook 改变了 sharer.php 的工作方式,因为 Ibrahim Faour 回复了 Facebook 提交的错误。

共享者将不再接受自定义参数,Facebook 将从 url OG 元标记中提取在预览中显示的信息,就像它在 facebook 上显示为帖子一样。


试试这个(在这个例子中通过 Javascript):

'http://www.facebook.com/sharer.php?s=100&p[title]='+encodeURIComponent('this is a title') + '&p[summary]=' + encodeURIComponent('description here') + '&p[url]=' + encodeURIComponent('http://www.nufc.com') + '&p[images][0]=' + encodeURIComponent('http://www.somedomain.com/image.jpg')

我在没有图像部分的情况下快速尝试了这个,sharer.php 窗口出现了预填充,所以它看起来像一个解决方案。

我通过这篇 SO 文章找到了这个:

想要来自 Flash 应用程序的 Facebook 共享链接中的自定义标题/图像/描述

这个链接包含在 Lelis718 的回答中:

http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/

所以这个答案归功于 Lelis718。

[编辑 2013 年 5 月 3 日] - 似乎我在这里的原始 URL 不再适用于我,而在查询字符串中也不包括“s = 100” - 不知道为什么但已相应更新

于 2012-10-09T11:25:57.610 回答
22

以下答案似乎不再有效,Facebook 不再接受 Feed Dialog 链接上的参数

您可以通过 URL 使用 Feed Dialog 来模拟 Sharer.php 的行为,但它有点复杂。您需要一个 Facebook 应用程序设置,其中包含您计划共享的 URL 的基本 URL 配置。然后您可以执行以下操作:

1)创建一个链接,如:

   http://www.facebook.com/dialog/feed?app_id=[FACEBOOK_APP_ID]' +
        '&link=[FULLY_QUALIFIED_LINK_TO_SHARE_CONTENT]' +
        '&picture=[LINK_TO_IMAGE]' +
        '&name=' + encodeURIComponent('[CONTENT_TITLE]') +
        '&caption=' + encodeURIComponent('[CONTENT_CAPTION]) +
        '&description=' + encodeURIComponent('[CONTENT_DESCRIPTION]') +
        '&redirect_uri=' + FBVars.baseURL + '[URL_TO_REDIRECT_TO_AFTER_SHARE]' +
        '&display=popup';

(显然将 [CONTENT] 替换为适当的内容。此处的文档:https ://developers.facebook.com/docs/reference/dialogs/feed )

2) 单击共享链接,使用 JavaScript 在弹出窗口中打开该链接

3)我喜欢创建文件(即popupclose.html)以在用户完成共享后将其重定向回,该文件将包含<script>window.close();</script>关闭弹出窗口

使用 Feed Dialog(除了设置)的唯一缺点是,如果您也管理 Pages,则无法选择通过 Page 共享,只有普通用户帐户可以共享。它会给你一些非常神秘的错误消息,其中大部分与你的 Facebook 应用程序的设置或你分享的内容或 URL 的问题有关。

于 2014-02-03T21:48:29.680 回答
15

Sharer.php 不再允许您自定义。您共享的页面将被抓取以获取 OG 标签,并且该数据将被共享。

要正确自定义,请使用FB.UIJS-SDK 附带的。

于 2014-01-13T07:49:42.383 回答
5

Facebook sharer.php 用于分享帖子的参数。

<a href="javascript: void(0);"
   data-layout="button"
   onclick="window.open('https://www.facebook.com/sharer.php?u=MyPageUrl&summary=MySummary&title=MyTitle&description=MyDescription&picture=MyYmageUrl', 'ventanacompartir', 'toolbar=0, status=0, width=650, height=450');"> Share </a>

不要使用空格,使用&nbsp.

于 2017-02-24T20:44:18.800 回答