Facebook Sharer - 标题和摘要定制

时间:2014-02-27 10:07:51

标签: javascript facebook social-networking facebook-sharer

我正在与Django合作开发一个项目,我正在尝试在facebook和twitter上分享页面

我在Facebook上遇到问题,我想自定义共享的标题和摘要,以便在共享索引页面和任何其他页面时更改文本。

我尝试使用:

<a href='http://www.facebook.com/sharer.php?s=100&
p[title]=TITLE+TEST&
p[summary]=summary&
p[url]=http://{{ request.META.HTTP_HOST }}{{ request.path }}&
p[images][0]=http://whatever.com/media/img/img_facebook.jpg' 
target="_blank">
<img src="{{STATIC_URL}}img/ico_facebook_small.png" title="Facebook" alt="Facebook" ></a>

甚至添加:

<meta property="og:title" content="My Title" />

我可以改变的唯一两件事是显示的网址和图片。 Facebook分享者忽略了标题和摘要。我在最后一小时搜索了互联网,但我找不到任何适合我的解决方案。

任何人都知道facebook分享者是否不再有效了?是否有自定义标题和摘要的解决方案?

由于


修改

现在我正在使用og meta标签,但仍有问题。我希望每个页面都有不同的标题,我需要通过Javascript获取标题(我通过js更改“og:title”内容)但似乎更改生效太晚,因为Facebook只获得了标题的一部分这是静态的。

我有类似的东西:

<meta property="og:title" content="TitlePage" /> 

并通过js更改内容以使其像

一样
<meta property="og:title" content="TitlePage SOMETHINGELSE" /> 

这种改变生效并且没有问题,但就像我说的那样,facebook并没有发现这种变化。


编辑2

我已经回答了我自己的问题,因为我找到了一种以旧方式进行共享的解决方案,但需要一个应用来使代码正常工作。

5 个答案:

答案 0 :(得分:12)

没有Open Graph元标记的Facebook Sharer

在这之后我改变了正确的答案,因为在一个新项目中,我必须以旧的方式做同样的事情,我终于通过在facebook中创建一个简单的应用程序来使这个代码正常工作:

此示例应用的信息:Facebook Send Dialog

APP_ID:Facebook应用标识符
http://www.THEPAGE.com:这将是我的域名

$('#share_button').bind('click', function(e){
        e.preventDefault();
        var title = 'Title I want';
        var im_url = 'url_to_image';
        var facebook_appID = 'YourFacebookAppID'
        url = "https://www.facebook.com/dialog/feed?app_id="+ facebook_appID +    "&link=" + encodeURIComponent("http://www.THEPAGE.com")+ 
                    "&name=" + encodeURIComponent(title) + 
                    "&caption=" + encodeURIComponent('Shared from MY_PAGE') + 
                    "&description=" + encodeURIComponent('DESCRIPTION') + 
                    "&picture=" + encodeURIComponent("http://www.THEPAGE.com" +im_url) +
                    "&redirect_uri=https://www.facebook.com";
        window.open(url);
    });

需要Facebook应用才能执行此操作

要创建您的Facebook应用程序,您需要注册为开发人员并创建应用程序访问下一个链接:

Facebook Developer APPS

答案 1 :(得分:8)

使用正确的Open Graph元标记设置您的页面。

这应该适用于facebooks共享脚本。 当人们在不使用分享按钮的情况下在Facebook上发布direkt链接时,这也将显示您页面的正确标题,图像和描述。

<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail" />

我建议你查看facebook文档 https://developers.facebook.com/docs/web/webmasters/ https://developers.facebook.com/docs/plugins/share-button

答案 2 :(得分:6)

我同意其他答案,请使用OpenGraph Protocol

  1. 但是,如果它不起作用,请确保您的网址是公开显示的。
  2. 如果它仍然无效,您绝对确定您的元标记是正确的,这意味着Facebook缓存了您的网页。
  3. 要删除Facebook缓存,请转到Facebook对象调试器页面并粘贴您的链接。通过这样做,Facebook将强制刷新其缓存并显示元标记的值。这应该可以解决你的问题。

答案 3 :(得分:1)

好吧,我和你的情况类似......自定义标题和描述的sharer.php几天前就开始工作了,从那以后,只有OG metada出现了,当它们存在时!

如果可以的话,我建议你使用正式版的sharer URL,现在只接受查询字符串中的共享URL,例如:https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fparse.com

请参阅https://developers.facebook.com/docs/plugins/share-button/#faqdialog

然后,您必须在页面上设置Open Graph元数据。

您可以查看Facebook如何使用调试页面处理您的页面: https://developers.facebook.com/tools/debug/

编辑

正式不再支持sharer.php网址中的自定义参数:https://developers.facebook.com/bugs/357750474364812

  

Ibrahim Faour - Facebook的开发人员支持工程师

     

我们已经更改了sharer插件的行为,以便与我们平台上的其他插件和功能保持一致。

     

分享者将不再接受自定义参数,Facebook将以与在Facebook上显示的相同方式提取预览中显示的信息作为来自网址OG元标记的帖子。

答案 4 :(得分:1)

解决此问题的最简单方法是使用Feed对话框:https://developers.facebook.com/docs/sharing/reference/feed-dialog

我也在另一个问题中发布了这个问题,因为我今天浪费了几个小时试图解决这个问题。希望它能解决某人的时间问题。 你需要APP Id。