为什么 Facebook Open Graph 忽略 $_GET 方法?

Why is Facebook Open Graph ignoring $_GET Method?

我搜索了几个小时,却一无所获。我确定我很想念这件事,但我真的需要帮助。

如果您转到下面的 link,您会看到页面上打印了视频 ID。

http://www.daystar.com/fb_opengraph_test2.php?video=123

当我在 https://developers.facebook.com/tools/debug/og/object/ 将 URL 加载到调试器并单击 "Scraped URL - See exactly what our scraper sees for your URL" 时,我没有看到 GET 的输出。

这是我的基本测试代码:

<head>
    <title>Testing <?php echo $_GET['video'];?></title>
    <meta property="og:title" content="Facebook Open Graph META Tags"/>
    <meta property="og:url" content="http://www.daystar.com/fb_opengraph_test2.php"/>
    <meta property="og:image" content="http://www.daystar.com/wp-content/uploads/daystar-logo-1.png"/>
    <meta property="og:site_name" content="Testing"/>
    <meta property="og:description" content="This is a test"/>
</head>
<body>
<?php echo "Testing URL - video=" . $_GET['video'];?>
</body>

请帮忙。这让我抓狂了一整天。

你的 og:url 是 http://www.daystar.com/fb_opengraph_test2.php 没有 GET。 Facebook 将加载 og:url 并将其视为重定向。然后 GET 是空的。您需要将 og:url 更改为 http://www.daystar.com/fb_opengraph_test2.php?video=<?php echo $_GET['video'];?>

尝试添加一个额外的标签

<link rel="canonical" href="http://www.daystar.com/fb_opengraph_test44.php?video=123" />

再次检查:

查看 Apache 访问日志后,我意识到这是服务器设置错误。我在日志中收到 301 重定向。显然有一个设置会导致机器人重定向,例如 Facebook 使用的 facebookexternalhit/1.1 机器人。

感谢大家的帮助。我把这个问题留在这里以防其他人遇到这个问题。