我正在尝试为我的网站制作自定义Facebook共享功能,我正在使用Facebook共享者URL在弹出窗口中打开Facebook共享。但是,由于某些原因它不起作用。
我正在做的很简单:
function shareFB(){
var img=$('#fb_img').html();
var text=$('#fb_share').html();
var url=$('#fb_url').html();
var full_url='http://www.facebook.com/sharer.php?s=100&p[title]=MyTitle&p[summary]='+text+'&p[url]='+url+'&&p[images][0]='+img;
window.open(full_url, 'sharer', 'toolbar=0,status=0,width=548,height=325');
}
奇怪的是,我给img
,text
和url
或者即使我使用了所有这些值也无关紧要。在下面的示例中,我完全删除了img
并设置了text="whatever"
和url="http://www.domain.com/stats_leagues.php"
。
https://www.facebook.com/sharer/sharer.php?s=100&%3Bp[title]=SportFant&%3Bp[summary]=whatever&%3Bp[url]=http%3A%2F%2Fwww.domain.com%2Fstats_leagues.php
然而它不起作用 - 它只是打开一个空的弹出窗口。为什么?我已经使用相同的URL格式为Facebook共享十几次,它总是有效。即使将上面的格式化URL复制/粘贴到我的浏览器中,也会打开一个空白页面。
答案 0 :(得分:0)
我不知道你从哪里获得了所有这些参数,比如s=
,p[title]
等,可能来自某些旧版本的facebook分享?
在Facebook share button文档上,在常见问题解答下,它说:
是的,虽然我们建议使用“共享”按钮为使用您网站的用户提供最简单,最一致的体验,但您可以使用以下链接调用“共享”对话框:
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fparse.com" target="_blank">
所以只需将您的代码更改为:
function shareFB() {
var url = $('#fb_url').html(); #encode url if it is not already
var full_url = 'http://www.facebook.com/sharer.php?u='+url;
window.open(full_url, 'sharer', 'toolbar=0,status=0,width=548,height=325');
}
常见问题解答还指出,Facebook会抓取您的页面以获取其他信息,例如标题,图片等。它会从您的页面中删除您的OG元标记。调试它here。