繁体   English   中英

Facebook 发送 API 元标记

[英]Facebook send API meta tags

我正在尝试邀请一位朋友加入我的应用程序,我正在向他发送消息说要加入这个游戏。

这是触发该功能的代码。

function invitefbfriends(){
      FB.init({appId: 'XXX', xfbml: true, cookie: true});

      FB.ui({
          method: 'send',
          link: 'http://example.com/game/1',
        });
      }

为什么这是选择错误的元数据?

我在相应的页面中有元标记,但这是从http://example.com/这是一个索引页面中选择元标记

当用户到达您的内部 URL ( .../game/1 ) 并且未登录时,他们将被重定向到根 URL 并显示登录屏幕。

当 Facebook 的爬虫到达那个 URL 时,同样会发生同样的事情。 他们不是登录用户,因此他们被重定向到登录页面(在您的根 URL 上)并在该页面上显示og:tags

您可以做些什么来规避这种行为,以某种方式检测它是请求页面的“真实”用户还是 Facebook 的爬虫机器人之一。 您可以通过两种方式执行此操作:

  1. 检测 Facebook 的已知 IP 之一。 此页面上有一个列表以及用于提取当前 IP 列表的 CLI 命令。
  2. 检测 Facebook 的用户代理字符串(也在上面的链接中提到)。 这种方法不太推荐,因为比较容易欺骗用户代理。

一旦您检测到请求来自 Facebook,您就需要让该请求绕过您的身份验证系统,或者只提供一个包含正确og:tag信息的页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM