就像没有在用户墙上显示的动作一样

时间:2012-02-11 19:06:03

标签: facebook-like fancybox facebook-opengraph facebook-wall nextgen-gallery

我花了好几天试图解决这个问题而没有成功。问题是,当用户点击类似按钮时,它并不表示他们喜欢墙上的任何东西。虽然代码在我的localhost上的测试设置中正常工作,但它在生产中不起作用。

我的客户端正在使用wordpress的图片库插件以及一个名为FancyBox的灯箱插件,以便在用户点击缩略图时显示更大版本的图片。他让我在每个fancybox上添加一个像facebook一样的按钮。

由于fanybox是动态生成的,因此每当渲染fancybox时,我都会生成一个新的if按钮iframe。 like按钮iframe使用的URL对于用户点击的图片是唯一的。该代码将& photo = / location / of / photo.jpg添加到图库URL。然后整个自定义URL通过encodeURIComponent()传递给iframe。

以下是用于生成iframe的代码段

var currentURL = document.URL,  
    currentIMG = $("#fancybox-img").attr("src").split("http://www.downsplash.com").pop();  
if (currentURL.match("&photo=")) {  
    var currentURL = currentURL.split("&photo=").shift();
};
var thisURL = encodeURIComponent(currentURL + "&photo=" + currentIMG);
<span id="fancybox-title-over">
    <div id="facebook-like" style="display:inline-block;">
        <iframe src="//www.facebook.com/plugins/like.php?href=" + thisURL + "&amp;send=false&amp;layout=button_count&amp;width=80&amp;show_faces=true&amp;action=like&amp;colorscheme=dark&amp;font&amp;height=21&amp;appId=314592468583405" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe>  
    </div>
</span>

Here is a link to the code running in production.

类似的按钮代码似乎没有任何障碍,它可以让你喜欢和不喜欢的照片。唯一的问题是,当喜欢照片时,用户墙上不会出现任何内容。

注意:

  1. 只使用没有的基本网址时,一切正常 custom&amp; photo = / location / of / photo.jpg
  2. 在localhost上测试此代码时,它会发布到Facebook。
  3. 我不确定为什么这些喜欢没有出现在用户的Facebook墙上。有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

正如Heera所指出的,生产代码IS正在运作,但当Facebook发布到用户墙时,它会发布投资组合的网址,不包括&amp; photo = / location / of / photo.jpg。这种情况正在发生,因为标题中有一个Open Graph元标记,用于向Facebook提供投资组合URL,仅此而已。

<meta property="og:url" content="http://www.downsplash.com/?portfolio=portraits">

由于我已经喜欢投资组合网址,因此我无法在自己的墙上看到帖子。事实证明,这个开放图形标签会被“简单Facebook Connect”和“Tweet,Like,Google+和Share”插件自动添加到标题中。这也解释了为什么我的代码在我的localhost测试站点上运行,因为当我喜欢照片时,Facebook无法扫描localhost以获取打开的图形标记。

感谢您的帮助!

编辑:

在我禁用插件并确保我的开放图形标签在html中正确显示后,我遇到了与Facebook缓存给定URL的开放图形标签相关的问题。这导致先前不正确的URL重定向继续发生。我通过访问Facebook's Open Graph Debugger并输入网址来解决此问题。这会导致Facebook刷新页面的开放图形标记的缓存。