0

我有一个奇怪的错误,有时 FB linter 会抓取我的内容,但说它找不到元标记,而有时它说它根本找不到内容。

我检查了我的 apache 日志,FB 两次都正确地给我打电话:

69.63.181.244 - - [12/Oct/2011:11:02:07 -0700] "GET /~gilles/www/gillesdevaux/outbox/248227866689405176 HTTP/1.1" 200 8339 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
69.63.181.244 - - [12/Oct/2011:11:02:09 -0700] "GET /~gilles/www/gillesdevaux/outbox/248158254941601902 HTTP/1.1" 200 8104 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

第一个 linter 说我想念 og:* 属性,第二个 linter 说无法访问页面。

这是两个页面的html代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# mytest: http://ogp.me/ns/fb/mytest#">
<title>opengraph picture + link | Formspring</title>

<base href="https://testserver/~gilles/www/" />

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<meta name="description" content="opengraph picture + link" />
<meta name="keywords" content="" />
<meta property="fb:app_id" content="201652911907"/>
<meta property="og:title" content="opengraph picture + link"/>
<meta property="og:type" content="mytest:question"/>
<meta property="og:url" content="https://testserver/~gilles/www/gillesdevaux/outbox/248227866689405176"/>
<meta property="og:image" content="http://testserver/photos/20111011/n4e94d0e273403.jpg"/>
<meta property="mytest:link" content="http://en.wikipedia.org/wiki/Cheese"/>

解决了

FB 需要 ping 您提交给 linter(或图 API)的 URL,但还需要 ping og:url 中提到的 URL。

我的开发设置有点奇怪,它受到基本的身份验证保护,并且 OpenGraph URL 在代理中被列入白名单。使用我为 og:url 提交的相同 URL 解决了这个问题。

4

1 回答 1

0

将 Open Graph Protocol 命名空间属性添加到标签:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" 
    lang="en" dir="ltr" xmlns:og="http://ogp.me/ns#">
于 2011-10-12T19:28:05.127 回答