我创建了一个音乐发现网络应用程序,我正在尝试与 Facebook 集成。前端本质上是一种使用 HTML5 画布的交互式体验,这意味着它全部存在于一个页面中。
我有一些存在于画布上的 html 代码来显示类似 facebook 的按钮。这个赞按钮对应于当前在画布应用程序中查看的歌曲。使用 jquery,我正在动态更改 的href
,fb:like
效果很好。同样,我正在使用window.history.pushState()
.
这很好用,除了单击“赞”按钮时打印在用户提要上的消息始终与加载的原始页面有关(也就是没有加载任何歌曲的 web 应用程序)。因此,我开始考虑使用 OpenGraph 来更改所述消息。
根据 facebook 上的类似按钮页面:
Facebook 什么时候抓取我的页面?
Facebook 需要抓取您的页面以了解如何在网站周围显示它。
Facebook 每 24 小时抓取一次您的页面,以确保属性是最新的。当 Open Graph 页面的管理员单击 Like 按钮以及将 URL 输入 Facebook URL Linter 时,该页面也会被抓取。Facebook 会观察您 URL 上的缓存标头 - 它会按优先顺序查看“过期”和“缓存控制”。但是,即使您指定更长的时间,Facebook 也会每 24 小时抓取一次您的页面。
如上所述,我现在正在创建自己的 url,每次更改歌曲时都会动态更改(无需重新加载站点)。我可以相对轻松地重新编码我的服务器,以便如果有人请求其中一个 URL,返回的 HTML 文件将包含与相关歌曲对应的元标记。让我们假设我这样做并编写了一个脚本来将所有这些 url 卷曲到 facebook。如果用户现在在我的 web 应用程序上单击与给定歌曲相对应的点赞按钮,该消息是否会对应于之前被 facebook 抓取的元标记,还是只是我目前收到的常规消息具有误导性?
最好的,
萨米
PS如果没有人知道这个问题的答案,我明天会把所有的代码都写出来让大家知道。
PPS 在相关说明中,是否有人知道是否使用 OpenGraph 更改点赞按钮单击的文本是否需要将scope="public_actions"
属性设置为fb:like
HTML 代码中的元素?