我有很多这样的页面:
www.mysite/directory/title?title=$title
所以你可以看到每个页面都是动态的。正如在我想让我的 facebook 为动态 url 生成按钮之前多次被问到的那样。我注意到去年年底对“赞”按钮进行了一些更改,因此一直在尝试查找有关此的最新帖子。
我遇到的问题是 Facebook 错误,它声明它需要一个绝对 URL,或者它只是将类似按钮引用到 Facebook 设置的内容,在这种情况下是我的登录页面。
我尝试了以下方法:
// Load the SDK's source Asynchronously
// Note that the debug version is being actively developed and might
// contain some type checks that are overly strict.
// Please report such bugs using the bugs tool.
(function(d, debug){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
ref.parentNode.insertBefore(js, ref);
}(document, /*debug*/ false));
</script>
<script type="text/javascript">
var sUrl = "http://www.mysite.com/";
document.getElementById('fb').setAttribute('href', sUrl);
</script>
<div class="fb-like" id="fb" data-send="true" data-layout="button_count" data-width="60" data-show-faces="true"></div>
和:
<?php $url = basename($_SERVER['REQUEST_URI']);?>
<div class="fb-like" data-send="false" data-layout="button_count" data-width="450" data-show-faces="true"></div>
随着:
<div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=186609524720286&xfbml=1"></script>
<div id="fblikeblock"></div>
<script>
var url = 'http://apps.facebook.com/inflatableicons/image_preview.html?y=120';
jQuery("#fblikeblock").html('<fb:like id="fbLike" href="'+url+'" send="true" width="450" show_faces="true" font=""></fb:like>');
FB.XFBML.parse(document.getElementById('fblikeblock'));
console.log(document.getElementById('fblikeblock'));
</script>
不要忘记:
<fb:like></fb:like>
在调用 FB.XFBML.parse 之后。
我没有成功,但正如你所看到的,现在已经用很多方法尝试过了,而且很卡住。有任何想法吗?
谢谢!
编辑:
url 是编码的,所以今天我尝试了以下 - 仍然是相同的结果。我在 Stack 上看到的所有地方都表明这些方法中的任何一种都应该有效,但我无处可去:
<div class="fb-like" id="fb" data-href="<?php urlencode($url);?>" data-send="true" data-width="450" data-show-faces="true"></div>
有任何想法吗?