【问题标题】:Correct way to use Facebook Like plugin in Django在 Django 中使用 Facebook Like 插件的正确方法
【发布时间】:2023-03-03 20:29:01
【问题描述】:

在遍历我的 Post 对象列表时,我正在使用以下 Facebook 代码来显示 Like 插件。

<fb:like href="{% url post post.id %}" layout="button_count" show_faces="false" width="450" font=""></fb:like>

生成的 HTML 如下所示:

 <fb:like href="/9/" layout="button_count" show_faces="false" width="450" font=""></fb:like> 

但是,当我单击“赞”按钮时,我的 FB 个人资料显示我赞了www.facebook.com/9/,而不是我自己的域名。

我做错了什么?

谢谢!

【问题讨论】:

    标签: django facebook facebook-like xfbml facebook-social-plugins


    【解决方案1】:

    问题是{% url post post.id %} 返回一个没有域的绝对url 路径。 Facebook 插件需要带有主机的完整 URL。为了使您的页面讨人喜欢,您还需要以某种方式将您的域传递给模板。假设您在视图中通过 request.get_host() 创建了一个模板变量 host 并将其传递给您的模板,那么 url 语句可能如下所示:

    <fb:like href="http://{{host}}{% url post post.id %}" layout="button_count" show_faces="false" width="450" font=""></fb:like>
    

    【讨论】:

    • 是的,我就是这么想的。有点怪异。我认为FB的代码会比这更聪明。幸运的是 Django 的模板标签有 request.get_host 方法。谢谢!
    • 显然这对于​​所有其他类似的 API 都是相同的,例如 Tweet-Button 或其他共享按钮。请牢记未来。
    猜你喜欢
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多