为什么Facebook Open Graph忽略了_GET美元的方法


Why is Facebook Open Graph ignoring $_GET Method?

我搜索了几个小时,结果是空的。我确信我错过了这很容易,但我真的需要帮助。

如果您转到下面的链接,您将看到视频ID已打印在页面上。

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

当我在 https://developers.facebook.com/tools/debug/og/object/将该 URL 加载到调试器中并单击"抓取的 URL - 查看我们的抓取器为您的 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 在没有 GET 的情况下 http://www.daystar.com/fb_opengraph_test2.php。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" />

并再次检查:

  • https://developers.facebook.com/tools/debug/og/echo?q=http%3A%2F%2Fwww.daystar.com%2Ffb_opengraph_test44.php%3Fvideo%3D123

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

感谢您的所有帮助。我把这个问题留在这里,以防其他人遇到这个问题。