我有一个有推荐链接的网站。它被设置为http://site.com/refer/abc
重定向到http://site.com/destination
.
但是,每当我http://site.com/refer/abc
作为 Facebook 的 Like 按钮的 data-href 输入时,它只会将链接重写为http://site.com/destination
,这会导致我失去推荐跟踪。
有什么方法可以使用 Facebook Like 按钮保留推荐链接?
我有一个有推荐链接的网站。它被设置为http://site.com/refer/abc
重定向到http://site.com/destination
.
但是,每当我http://site.com/refer/abc
作为 Facebook 的 Like 按钮的 data-href 输入时,它只会将链接重写为http://site.com/destination
,这会导致我失去推荐跟踪。
有什么方法可以使用 Facebook Like 按钮保留推荐链接?
我通过检查访问的是机器人还是人类解决了这个问题http://site.com/refer/abc
。如果您使用的是 Rails:
request.env["HTTP_USER_AGENT"].match(/\(.*https?:\/\/.*\)/) ? "is robot" : "is human"
如果是人类,我让它像往常一样重定向。如果它是一个机器人,我只是在没有重定向的情况下呈现页面 - 与人类看到的相同http://site.com/destination
。这使得 Facebook 保留了原始引荐来源网址,但在有人点赞该页面时仍显示该页面的相关元标记。
编辑:我发现如果您希望 Facebook 在创建时立即抓取您的 Like 按钮,您需要在每次创建新按钮时卷曲 Facebook 的 URL linter:
curl https://developers.facebook.com/tools/lint/?url={YOUR_URL}&format=json
这将立即更新“赞”按钮元数据。更多信息在这里。