1

私はこのページに取り組んできました http://www.btselem.org/hebrew/131606

Facebook の [Share] ボタンを追加することにしましたが、何らかの理由で共有しようとすると、Facebook スクレイパーはソース内のメタ タグを取得できず、サイトの URL しか表示されません。Facebook 開発者デバッグ ツールで URL を確認したところ、206 応答コードと次のエラーが返されました。

ダウンロードできません - データ フォーム URL を取得できませんでした。

また、「スクレイパーがあなたの URL から見たものを正確に見る」オプションもチェックしましたが、スクレイパーは次の行だけを読み上げているようです。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

奇妙なことに、これはページのソースにある DOCTYPE でさえありません。私はすでにDOCTYPEを次のように変更しようとしました:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

これで問題が解決するはずだと言っている古い投稿を読んだ後、それもうまくいかず、スクレーパーから同じ行を取得し続けています。皆さんが持っているヒントやアイデアに感謝します…</p>

ソースの最初の部分、少なくともメタ タグを含む部分を投稿しました。必要に応じてコード全体を追加します。前もって感謝します、

デビッド。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/" xml:lang="he" lang="he" dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>לקסיקון הכיבוש: 67 שניות על... מאחז |בצלם</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta property="fb:app_id" content="142675212478057"/>

<link rel="shortcut icon" href="/sites/all/themes/btselem/images/favicon.ico" type="image/x-icon" />
<meta property="og:site_name" content="בצלם" />
<meta property="og:title" content="מאחז | בצלם" />
<meta property="og:type" content="article" />
<meta property="og:url" content="http://www.btselem.org/hebrew/131606" />
  <link type="text/css" rel="stylesheet" media="all" href="/sites/default/files2/css/css_1458508373fb743060ffb80b43b3d59c.css" />
<link type="text/css" rel="stylesheet" media="print" href="/sites/default/files2/css/css_ff9c22380c0853814b0563da89e16090.css" />
4

3 に答える 3

2

Facebook Scraper( https://developers.facebook.com/tools/debug)に作成したオブジェクトグラフファイルを読み取らせようとしたときに、この正確な問題が発生しました。「<metaproperty=...」の前に空白(スペース)があると、スクレーパーは、メタがヘッドタグではなく、ボディタグの一部として表示されていることを示しました。メタタグの前の空白を削除すると、スクレーパーは頭のメタタグを正しく認識でき、うまく機能しました。好奇心のために、以前の4スペース幅の空白をタブに置き換えたところ、スクレーパーはコンテンツを正しく表示できました。非常に奇妙な。これが誰かに役立つことを願っています!

于 2012-11-09T20:10:51.040 に答える
0

タグにメタ タグを挿入しようとしているようです<body>

http://developers.facebook.com/tools/debug/og/echo?q=http%3A%2F%2Fwww.btselem.org%2Fhebrew%2F131606

<!DOCTYPE html>
<html>
<body>
<p>UBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</p>
<meta http-equiv="content-type" content="text/html; charset=utf-8">

これは整形式の HTML ではありません。HTML の問題を修正すると、Facebook がページを正しくリントできるようになります。

于 2012-06-04T23:49:19.083 に答える
0

<!DOCTYPE>ドキュメントの生成されたソースを見ると、タグの前に空白行が表示されています。

206 応答コードは、通常、リクエスタが送信をキャンセルしたことを示します。空白行が Facebook パーサーを混乱させている可能性があり、単にあきらめているだけです。

私は Drupal をあまり使用していませんが、他の PHP ベースの CMS システムでは、ヘッダーがレンダリングされる前に呼び出される php ファイルの終了?>タグとEOFマーカーの間に空白があるため、通常、これが発生します。これらの終了 php タグを可能な限り省略することがベスト プラクティスであることに同意しているようです。

すべての PHP ファイルを編集するプロセスを実行する前に、このページのソースをコピーし、空白なしで静的な html ファイルとしてサーバーに保存することで、これをテストできます。それが Facebook デバッガーによって解析されるかどうかを確認してください。そうでない場合は、別の問題があります。

于 2012-06-03T14:41:31.257 に答える