【发布时间】:2012-09-14 20:29:17
【问题描述】:
http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.google.com
如何自定义文本和图像。看起来 Facebook 撤下了文档。
【问题讨论】:
-
Facebook 最近禁止自定义其共享者。从现在开始,您将不得不依赖 Open Graph 标签
标签: facebook
http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.google.com
如何自定义文本和图像。看起来 Facebook 撤下了文档。
【问题讨论】:
标签: facebook
用于分享帖子的 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。
【讨论】:
您可以通过 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 对话框(除了设置)的唯一缺点是,如果您也管理主页,则无法选择通过主页共享,只有普通用户帐户可以共享。它可能会给你一些非常神秘的错误消息,其中大部分与你的 Facebook 应用程序的设置或你分享的内容或 URL 的问题有关。
【讨论】:
Sharer.php 不再允许您自定义。您共享的页面将被抓取以获取 OG 标签,并且该数据将被共享。
要正确自定义,请使用 JS-SDK 附带的FB.UI。
【讨论】:
更新:
就像@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 文章找到了这个:
Want custom title / image / description in facebook share link from a flash app
这个链接包含在 Lelis718 的回答中:
所以这个答案归功于 Lelis718。
[编辑 2013 年 5 月 3 日] - 如果不在查询字符串中包含“s=100”,我在这里的原始 URL 似乎不再适用 - 不知道为什么,但已相应更新
【讨论】:
您所说的是 Facebook 在您分享链接时提取的预览图像和文本。 Facebook 使用Open Graph Protocol 获取此数据。
基本上,您所要做的就是将这些 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 Debugger 测试这些更改。它会告诉你是否犯了任何错误(以及如何修复它们!)
【讨论】: