Facebook Sharer - 标题和摘要定制

Alv*_*oAV 12 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>
Run Code Online (Sandbox Code Playgroud)

甚至添加:

<meta property="og:title" content="My Title" />
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢


编辑

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

我有类似的东西:

<meta property="og:title" content="TitlePage" /> 
Run Code Online (Sandbox Code Playgroud)

并通过js更改内容

<meta property="og:title" content="TitlePage SOMETHINGELSE" /> 
Run Code Online (Sandbox Code Playgroud)

这个改变效果很好,没有问题,但就像我说的那样,facebook并没有发现这种变化.


编辑2

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

Alv*_*oAV 12

Facebook Sharer没有Open Graph元标记

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

此示例应用程序的信息:Facebook发送对话框

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);
    });
Run Code Online (Sandbox Code Playgroud)

Facebook应用程序需要这样做

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

Facebook开发人员APPS

  • 你是最好的男人!这样我就不必使用那个愚蠢的sdk,只需用这个url显示webview,就完成了!谢谢!!! (3认同)
  • 我和你一样感觉!这里唯一的事情是你需要在Facebook上创建一个APP,但它很容易在你的网络应用程序中管理 (2认同)
  • 阅读您通过的链接后,这是与Facebook分享的最简单方式之一!创建应用程序不到5分钟,谢谢! (2认同)

Urb*_*man 8

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

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

<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail" />
Run Code Online (Sandbox Code Playgroud)

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

  • 好吧,这可能是问题的一部分.要阅读Meta标签,facebook需要能够打开您的页面来阅读它们. (2认同)

gla*_*rou 6

我同意其他答案,使用OpenGraph协议

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