我如何自定义Facebook的sharer.php

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

我如何自定义文本和图像。 它看起来像Facebook拉文件。

你在谈论的是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 US Marines, under command of a renegade general, take over Alcatraz and threaten San Francisco Bay with biological weapons."/> 

正如你所看到的,有一个图像属性和一个描述。 当您更改页面或og:meta标签时,您可以使用Facebookdebugging器来testing这些更改。 它会告诉你,如果你犯了什么错误(以及如何解决它们)!

更新:

这个答案已经过时了。

就像@ jack-marchetti在他的评论中说的,@devantoine的链接: https : //developers.facebook.com/x/bugs/357750474364812/

Facebook已经改变了sharer.php的工作方式,就像Ibrahim Faour回复Facebook上的bug一样。

共享器将不再接受自定义参数,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窗口出现预填充,所以它看起来像一个解决scheme。

我通过这个SO文章find了这个:

想要从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”在查询string – 不知道为什么,但已经相应更新

看来以下答案不再有效,Facebook不再接受Feed对话链接上的参数

您可以通过URL使用Feed对话框来模拟Sharer.php的行为,但是它稍微复杂一些。 您需要使用您计划共享的URL的基本URLconfiguration的Facebook应用程序设置。 然后你可以做到以下几点:

1)创build一个链接,如:

  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'; 

(显然用适当的内容replace[CONTENT]。文档在这里: https : //developers.facebook.com/docs/reference/dialogs/feed )

2)点击共享链接,在JavaScript的popup窗口中打开该链接

3)我喜欢创build文件(即popupclose.html)redirect用户,当他们完成共享,这个文件将包含<script>window.close();</script>来closurespopup窗口

使用Feed对话框(除了设置)的唯一缺点是,如果您同时pipe理页面,则无法select通过页面进行共享,只有普通用户帐户才能共享。 它可以给你一些非常神秘的错误消息,其中大多数与你的Facebook应用程序的设置或与你共享的内容或URL的问题有关。

Sharer.php不再允许您自定义。 你分享的页面将被抓取OG标签,这些数据将被共享。

要正确定制,请使用JS-SDK附带的FB.UI

 <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