Facebook开放图形对象动态网页


Facebook Open Graph Object Dynamic Webpage

所以我正在制作一个iPhone应用程序,它涉及通过Facebook开放图协议进行共享。然而,我在为带有元标签的对象创建动态网页时遇到了问题。我看到了这篇文章,动态生成Facebook Open Graph元标签,并尝试使用代码,但它不起作用。

这是我的food.php对象网页。

<?php
$params = array();
if(count($_GET) > 0) {
    $params = $_GET;
} else {
    $params = $_POST;
}
// defaults
if($params['type'] == "") $params['type'] = "food";
if($params['title'] == "") $params['title'] = "default title";
if($params['image'] == "") $params['image'] = "blank";
if($params['description'] == "") $params['description'] = "default description";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# MY_APP_NAME_SPACE: http://ogp.me/ns/fb/MY_APP_NAME_SPACE#">
        <!-- Open Graph meta tags -->
        <meta property="fb:app_id" content="MY_APP_ID" />
        <meta property="og:url" content="http://mysite.com/index.php?type=<?php echo $params['type']; ?>&title=<?php echo $params['title']; ?>&image=<?php echo $params['image']; ?>&description=<?php echo $params['description']; ?>"/>
        <meta property="og:type" content="MY_APP_NAME_SPACE:<?php echo $params['type']; ?>"/>
        <meta property="og:title" content="<?php echo $params['title']; ?>"/>
        <meta property="og:image" content="http://mysite.com/img/<?php echo $params['image']; ?>.jpg"/>
        <meta property="og:description" content="<?php echo $params['description']; ?>"/>
    </head>
</html>

由于这些代码位于我的服务器中,我尝试使用带有此url的fb对象调试器工具访问该页面。

http://mysite.com/food.php?fb:app_id=MY_APP_ID
&og:type=MY_APP_NAME_SPACE:food
&og:title=Pizza
&og:description="Pizza"
&og:image=http://mysite.com/img/someImage.jpg

*注意,url 中没有空格

调试器抛出这个错误

解析URL时出错:解析输入URL时出错,未抓取任何数据。

我想问题出在我输入的url上,因为工具无法解析它?如果不是,会是什么?

if($params['description'] == "") $params['description'] = "default description";

"默认描述"实际上应该是你对观众将看到的网站的描述,因为这就是脸书在你的页面上抓取的内容。

变量$params['description'];?>将输出字符串中的实际描述。"/>

echo语句就像打印出实际的描述一样,也是facebook的调试器将看到的。

您需要通过诸如mysite.com/pizza.php之类的URL传递值吗?title=比萨饼&description=facebook抓取特定页面的每个描述是什么