【问题标题】:Facebook Like box - Being able to like the current page using dynamic URLFacebook Like 框 - 能够使用动态 URL 为当前页面点赞
【发布时间】:2011-01-30 14:35:45
【问题描述】:

我是 Facebook 新手,我正在尝试将 Facebook 点赞按钮添加到我的网站。从 Facebook 的开发者部分,我得到了添加点赞按钮的以下代码:

<iframe src="http://www.facebook.com/plugins/likebox.php?href=http://www.mysite.com&width=292&colorscheme=light&show_faces=false&stream=false&header=false&height=62" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:62px;" allowTransparency="true"></iframe>

现在我希望能够在我网站的每个页面上放置点赞按钮。出于这个原因,我认为在上面的代码中使用静态链接是没有用的。因此,我有自己的函数,可以在名为 CURRENT_URL

的常量中填充当前页面 URL(包括 URL 中可能存在的任何变量)

所以我修改后的 Like 按钮代码如下所示:

<iframe src="http://www.facebook.com/plugins/likebox.php?href=<?php echo CURRENT_URL; ?>&width=292&colorscheme=light&show_faces=false&stream=false&header=false&height=62" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:62px;" allowTransparency="true"></iframe>

当我在我的网站中使用上述修改后的代码时,我没有看到 Like 框。相反,我在 iframe 中看到一个错误页面,上面写着:

The page you requested was not found.
You may have clicked an expired link or mistyped the address. Some web addresses are case sensitive.

如果我做一个一般的&lt;?php echo CURRENT_URL; ?,它会显示正确的 URL。常量的值没有问题。这让我觉得 iframe 只是在尝试加载网站名称而不解析常量值。我只想要一个可以在整个网站中使用的代码,而无需手动更改我网站每个页面的 Like 按钮值。

所以我的问题是:

如何让这个 iframe 检测当前页面 URL(包括我可能通过 URL 传递的任何变量)并将 Like 按钮 URL 值填充到当前页面 URL,以便用户可以喜欢这个页面。

感谢所有帮助。谢谢。

更新(解决方案):

我发现对这一切有很大的困惑。实际上有两种类型的 Like 功能。一个是普通的 Like 按钮,另一个是 Like 框。以下是链接:

点赞按钮: http://developers.facebook.com/docs/reference/plugins/like

点赞框: http://developers.facebook.com/docs/reference/plugins/like-box

如果您想让人们喜欢您网站的各个页面,请使用“喜欢”按钮代码。 Like Box 要求您提供:Facebook 页面 URL。这意味着您不能使用它让您的用户喜欢您的网页。 (我仍在努力了解 Facebook 页面 URL 及其工作原理以及何时失败)

希望这些信息可以帮助其他遇到同样麻烦和困惑的人。

【问题讨论】:

    标签: php facebook iframe facebook-like


    【解决方案1】:

    你可以只回显点赞按钮,你不会有这个问题 - 类似的东西:

    function likeButton($url_to_like, $action = "like") {
        return sprintf('<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="%s" show_faces="true" width="450" action="%s"></fb:like>',
    $url_to_like, $action);
    }
    

    我使用的是 javascript 版本,但 iframe 是一样的 :)

    【讨论】:

    • 感谢您的回复。我用可能的解决方案更新了我的帖子。我使用的是 Like Box 的代码,而实际上我应该使用 Like 按钮的代码。您的代码是指向我的解决方案的指针。因此,我也选择您的答案作为我的解决方案。感谢您帮助我。
    • 顺便说一句,您知道 Facebook 主页 URL 是什么以及如何使用它吗?我尝试访问 www.facebook.com/mycompany 并返回 404 错误。这意味着虽然我已经创建了我的页面,但没有找到它。业务页面是否需要任何激活?我对此很陌生,并且(尚)不知道如何进行。将不胜感激您可能有更多的意见。谢谢。
    • 我认为 facebook 页面在页面名称后有一些随机 ID(即 - facebook.com/pages/WTF-Test-Page/142187565841842)在创建页面后检查链接 :)
    • 哇,这太混乱了!您对链接是正确的。但我无法理解 Like Button 和 Like Box 之间的操作区别。两者似乎都在做同样的事情(据我目前的理解,我是 Facebook 及其集成的新手)。阅读 Facebook 上的“帮助”部分对我没有多大帮助,因为它围绕着同样的技术术语。如果您知道的话,能否告诉我有什么区别以及何时以非技术方式使用它们?谢谢。
    • Like 按钮用于通用目的 - 您可以喜欢所有内容并将其放置在任何地方。 (即喜欢博客文章或文章)另一方面:Like Box 用于 facebook 页面(类似于公共帐户,我不确定定义)。它显示了有多少用户喜欢给定的页面,页面的墙(称为流)加上给定页面的 Like 按钮。就是这样:)
    【解决方案2】:

    使用该功能是个好主意。我们的网站上有同样的问题,请在此处查看 (TAPNET Online Backup),因为我们对右侧栏上的所有页面使用通用代码 sn-p。我尝试删除 href="" 中的值,它必须拉出当前 URL,因为它正在工作。我看到的# 和以前一样,当我喜欢在数字按预期增加之前不喜欢的任何页面时。试试看。

    【讨论】:

    • 感谢您告诉我。会试试的。
    猜你喜欢
    • 2011-03-10
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2013-02-05
    相关资源
    最近更新 更多