私は、ユーザーが複数のオブジェクトに対してアクションを開始する必要があるページを持っていますが、Facebookのデザインでは、必要なメタプロパティタグを使用して1ページあたりオブジェクトを1つに制限します。同じページの複数のFacebook opengraphオブジェクト
誰でもこの問題の解決策を見つけましたか?
私は、ユーザーが複数のオブジェクトに対してアクションを開始する必要があるページを持っていますが、Facebookのデザインでは、必要なメタプロパティタグを使用して1ページあたりオブジェクトを1つに制限します。同じページの複数のFacebook opengraphオブジェクト
誰でもこの問題の解決策を見つけましたか?
FBは、オブジェクトに割り当てたURLを使用して情報をスクレイプします。この周りの唯一の方法は、iframeやいくつかのアプローチで類似したオブジェクトを表示させることです。オブジェクトが直接参照された場合は、結合されたオブジェクトビューの適切なラッパーページにリダイレクトする方法が必要です。すべてが同じドメインにある限り、親を介して子フレーム間の通信のためのメソッドを試すことができます。
Open GraphはURLをオブジェクト識別子として使用するため、1ページに複数のオブジェクトを含めることはできません。はオブジェクトです。
代わりに、オブジェクトごとにURLが必要です。そのURLのHTMLには正しいOGマークアップが含まれている必要があります。
複数の類似ボタンを1つのページに配置し、それぞれのボタンに 'href'パラメータを指定することで、それぞれのオブジェクトをポイントすることができます。
あなたは、彼らがこれらの各オブジェクトへのリンクをクリックしたときに、ユーザーが同じページに戻って終わるしたい場合は、あなたがこれを行うことができますが、そのビットtricksy ...
あなたにオブジェクトページ、サーバー上で、受信したリクエストのユーザーエージェントを調べます。ユーザーエージェントに文字列 'facebookexternalhit'が含まれている場合は、HTMLとOGマークアップをレンダリングします。これがFacebookスクレイパーがあなたのページを見る方法です。ユーザーエージェントにこの文字列が含まれていない場合は、ユーザーに表示させたいページに302文字を入力します。
結果?多くのオブジェクトが、ユーザーが表示できるページは1つだけです。勝つ。
そして、これは、あなたがそれを行うだろうかです:
<?php
if ($_SERVER["HTTP_USER_AGENT"] != "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)") {
redirect('http://www.somesite.com', 302);
}
function redirect($url, $type=302) {
if ($type == 301) header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
die();
}
?>
<html...
https://stackoverflow.com/a/7659770/1354666これは素晴らしい答えですが、それについていくつかのことは私のためにうまく機能していないので、私は選択肢を試してみました。
ボタンタグにhrefを使用する代わりに、私はIframeを使用しています。
私はまだ携帯電話の出力でこれを改良しようと努力していますが、ほとんどのブラウザではそうであるように機能しています。