EDIT: LAST UPDATE
:
因此,我们测试了更多。我使用了 facebook 开发人员“lintner”http://developers.facebook.com/tools/lint/
.在我的任何一个页面上都没有发现任何错误,而且 lint 页面上的 like 按钮工作正常。如果我切换回我自己的网站,我可以清楚地看到我的点赞已被统计。
奇怪的是.. 如果我在我自己的页面上删除了赞,然后神奇地从我自己的网站上添加了赞。
我刚才更改的最后一件事是将我的文档类型更改为 STRICT//EN,因为这是我发现与某些使用“赞”按钮的页面和我的页面不同的唯一部分...
我已经搜索这个错误一段时间了,但我似乎找不到问题所在。我曾使用许多页面来获取我需要的信息:
- http://developers.facebook.com/docs/opengraph/
- http://www.proworks.com/blog/2010/04/28/add-advanced-javascript-sdk-and-fbml-facebook-likerecommend-button-features-to-your-website/
- http://www.hyperarts.com/blog/how-to-add-facebook-like-button-social-plugins-to-wordpress-posts/
- http://www.1stwebdesigner.com/tutorials/facebook-integrate/
- http://developer.practicalecommerce.com/articles/1857-Two-Easy-Ways-to-Add-the-Facebook-Like-Button-to-Product-Detail-Pages
- http://developers.facebook.com/docs/reference/plugins/like/
(除了这里关于类似问题的 stackoverflow 上的众多帖子)
但看完之后我仍然不确定哪里出了问题。在大多数页面上,“赞”按钮都可以正常工作(至少对我来说,不确定如果有人添加了“赞”会发生什么,因为我还没有发现“2”)。
这些是带有赞按钮的当前页面:
- http://ontwikkel.fotoactie.nl/pic.php?id=61
- http://ontwikkel.fotoactie.nl/pic.php?id=62
- http://ontwikkel.fotoactie.nl/pic.php?id=63
- http://ontwikkel.fotoactie.nl/pic.php?id=64
- http://ontwikkel.fotoactie.nl/pic.php?id=65
- http://ontwikkel.fotoactie.nl/pic.php?id=66
- http://ontwikkel.fotoactie.nl/pic.php?id=67 (刚刚添加)
在我的例子中,最后一个按钮 (nr 6 + 7) 在我按下按钮时添加了一个赞,但在我按下按钮后它也自动删除了赞。一秒钟,评论框弹出,但一瞬间它也淡出,计数器跳回 0。当我从链接 1-5 中删除一个喜欢时,它会按原样删除它,我可以添加它没有被删除。
根据我的阅读,我必须使用 Facebook Javascript SDK 才能使用 <fb:like>
标记,我已经完成了。起初我使用了一个应用程序 ID,但经过一些阅读后很明显,点赞按钮不需要应用程序 ID。
然后我继续发现所需的元数据标签。这些是我放在页面上的一次:
<?php if($curPicTitle != false) { ?>
<meta property="og:site_name" content="<?=URL;?>"/>
<meta property="og:type" content="article" />
<meta property="og:title" content="Fotoactie.nl: <?=$curPicTitle;?>"/>
<meta property="og:url" content="<?=URL;?>pic.php?id=<?=$pic;?>" />
<meta property="og:image" content="<?=URL;?>/photos/1/med_<?=$curPicUrl;?>"/>
<?php } ?>
请注意 PHP,仅当存在有效图像且标题、网址和图像对于每个页面-标题-图像组合而言 100% 确定唯一时,它才会包含在内。
然后同样使用 PHP 生成点赞按钮:
echo '<fb:like send="false" href="'. URL . '/pic.php?id=' . $pic . '" layout="button_count" width="100%" show_faces="false"></fb:like>';
我尝试从这部分删除 href,但我认为这会搞砸并使每张图片都使用相同的 URL (?!)
在页面底部,就在 </body>
之前标记,放置此代码:
<script src="http://connect.facebook.net/nl_NL/all.js"></script>
<script>
FB.init({
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
</script>
如果有人能够测试最后一页(以及其他页面,如果需要)上的点赞按钮,我将不胜感激。这不是“喜欢我的东西”的帖子,这些照片是演示图片,在一切正常后将被删除。
提前致谢。
/EDIT
所以我将管理员和应用程序 ID 添加到元标记中并等待了几个小时,然后我收到了错误消息:
页面操作 http://ontwikkel.fotoactie.nlpic.php/?id=66是 niet bereikbaar。
已翻译:http://ontwikkel.fotoactie.nlpic.php/?id=66 上的页面无法到达。
很明显是因为'/'放错了地方,但奇怪的是,除极少数情况外,每个页面都可以正常工作。这一切都是使用 PHP 自动构建的,因此在我看来,FB 按钮在所有情况下的行为都应该相同。
按钮页面上的来源(上面的链接 #6:?id=66)是正确的..
最佳答案
你好像不见了<div id="fb-root"></div>
从你的代码。我很惊讶它实际上有效。有关更多信息,请参见:http://developers.facebook.com/docs/reference/javascript/FB.init/
如果这不能解决问题,请尝试按照此 stackoverflow 线程中的描述包含管理员 ID 或应用程序 ID。 Facebook like button is automatically undoing itself
编辑:我要尝试的另一件事是移动 <div id="fb-root"></div>
在 facebook 标记的正上方。我注意到你把它放在脚本标签的正上方,靠近 body 标签。虽然在您的页面内容之后加载 Facebook 脚本很好(并且更可取),但据我所知,Facebook 标记必须保持完整。
您的标记应如下所示:
<div id="fb-root"></div><fb:like href="http://ontwikkel.fotoactie.nl/pic.php?id=66" send="false" width="450" show_faces="false" font=""></fb:like>
把你的脚本标签放在任何地方......
关于javascript - 多个 facebook 按钮 (fb :like) are not working: unliking themself,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6385508/