可能性のある複製:
Facebook Sharerはどのように画像を選択しますか?
私は、さまざまな速度で運転しているときに潜在的な交通事故を示すフラッシュアプリを作成しています。ユーザーがこの情報をFacebookで共有できるようにします。ただし、これには、何らかの方法でFacebookに表示されるテキストをカスタマイズできることが必要です。
(Flashアプリ自体から)空白のウィンドウで開くURLを作成しています。生成されたメッセージをtパラメーターとして、uパラメーターとtパラメーターを指定します。しかし、これは常にページのタイトルによって上書きされるようです。 HTMLコードからタイトルタグを省略すると、ファイル名が使用されます(指定されたタイトルも上書きされます)。
http://www.facebook.com/sharer.php?u=http://espentokerud.com/face/addiste.html&t=test;
また、URLをURLエンコードしてみましたが、役に立ちませんでした。
http://www.facebook.com/sharer.php?u=http%3a%2f%2fespentokerud.com%2fface%2faddiste.html&t=test;
また、addthis APIを使用してみましたが、同じ欠点があります。面白いことに、swfを投稿すると、タイトルと説明をカスタマイズでき、スクリーンショットを指定することもできます。しかし、swfを投稿しない場合、これは無視されるようです。
Htmlページでメタタグを使用してサムネイル画像、タイトル、説明を指定できることは承知していますが、このコンテンツの一部はフラッシュアプリ内の計算に基づいている必要があります。
2016アップデート
Sharing Debugger を使用して、問題を特定します。
Facebookをフォローしていることを確認してください ベストプラクティスの共有 。
Open Graph Markup を正しく使用していることを確認してください。
元の回答
ここですでに述べたことに同意しますが、 Facebook開発者サイトのドキュメントごと 、次のメタタグを使用することをお勧めします。
<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />
メタタグで目標を達成できず、URL埋め込みバージョンが必要な場合は、@ Lelis718の 以下の回答 を参照してください。
このサイトには解決策があると思うので、今すぐテストします。 facebookがshare.phpのパラメーターを変更したようです。そのため、共有ウィンドウのテキストと画像をカスタマイズするには、パラメーターを「p」配列に入れる必要があります。
見てみな。
私は一週間前に同じ問題を抱えていました。
まず、URLのパラメーター文字列の前にアンパサンドが付いていることに気付きましたが、パラメーター文字列を開始するには、代わりに疑問符を付け、その後に各追加パラメーターの間にアンパサンドを付ける必要があります。
ここで、次のように、URLをエスケープする必要がありますが、URLに渡すURLパラメーター(共有でコンテンツを提供するために必要なタイトルまたはその他のコンテンツ)も二重エスケープする必要があります。
var myParams = 't=' + escape('Some title here.') + '&id=' + escape('some content ID or any other value I want to load');
var fooBar = 'http://www.facebook.com/share.php?u=' + escape('http://foobar.com/superDuperSharingPage.php?' + myParams);
次に、上記のリンクされたsuperDuperSharingPage.phpを作成する必要があります。これは、希望する動的なタイトル、説明、画像コンテンツを提供する必要があります。このようなもので十分です:
<?php
// get our URL query parameters
$title = $_GET['t'];
$id = $_GET['id'];
// maybe we want to load some content with the id I'll pretend we loaded a
// description from some database in the sky which is magically arranged thusly:
$desciption = $databaseInTheSky[$id]['description'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title;?></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="title" content="<?php echo $title;?>" />
<meta name="description" content="<?php echo $desciption;?>" />
<!-- the following line redirects to wherever we want the USER to land -->
<!-- Facebook won't follow it. you may or may not actually want || need this. -->
<meta http-equiv="refresh" content="1;URL=http://foobar.com" />
</head>
<body>
<p><?php echo $desciption;?></p>
<p><img src="image_a_<?php echo $id;?>.jpg" alt="Alt tags are always a good idea." /></p>
<p><img src="image_b_<?php echo $id;?>.jpg" alt="Make the web more accessible to the blind!" /></p>
</body>
</html>
これがあなたのために働くかどうか私に知らせてください、それは本質的に私のためにしたことです:)
私はものを表示するJoomlaモジュールを持っています...そしてページのタイトルメタ説明ではなくFacebookでそのようなものを共有できるようにしたいので、私の回避策は実行されるサーバーに秘密の.phpファイルを持つことですFBを検出したとき
$_SERVER['HTTP_USER_AGENT']
if($_SERVER['HTTP_USER_AGENT'] != 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)') {
echo 'Direct Access';
} else {
echo 'FB Accessed';
}
joomlaモジュールから共有したいアイテムのタイトルとメタ記述で特定のページをフォーマットするURLで変数を渡します...
name="fb_share" share_url="MYURL/sharer.php?title=TITLE&desc=DESC"
お役に立てれば...
私は実際に同様の問題を抱えています。複数のラジオボタンがあるページがあります。各ボタンは、変更時にJavaScriptを介して、ページのタイトルと説明のメタタグを設定します。
たとえば、ユーザーが最初のボタンを選択すると、メタタグは次のように表示します。
<meta name="title" content="First Title">
<meta name="description" content="First Description">
ユーザーが2番目のボタンを選択すると、メタタグが次のように変更されます。
<meta name="title" content="Second Title">
<meta name="description" content="Second Description">
... 等々。 Firebugを介してコードが正常に機能していることを確認しました(つまり、これら2つのタグが適切に変更されたことがわかります)。
どうやら、 Facebook Share は、ページのロード時に使用可能なタイトルと説明のメタタグのみを取り込みます。これらの2つのタグのページロード後の変更は完全に無視されます。
誰もこれを解決する方法についてアイデアを持っていますか?つまり、ページの読み込み後に変更された最新の値をFacebookに強制的に取得させることです。
できません、サポートしていません。
なぜこれらの計算を行う必要があるのか、フラッシュアプリ内でのみ確認する必要がありますか?
Flashアプリから取得したメタデータに明確に関連するURLに移動する必要があります。それ以外の場合、フラッシュアプリは、ヒットしたURLに応じて値を取得する方法を認識します。
オプションは次のとおりです。
再
なぜこれが賛成ですか?それは間違っています。できます-ISは、カスタムのタイトル、説明、および画像を共有に追加するためにサポートされています。私はいつもそれをします。 –ダスティン・ファインアウト3時間前
OPは、ページからそれを提供できることは既に知っていたが、値をFacebookに直接渡すことを(ターゲットページを介さずに)したいと非常に明確に述べました。
また、この問題を回避するために3つの異なるオプションを提供したことに注意してください。そのうちの1つは、後で回答として投稿したものです。あなたのオプションは、OPがそれをしようとしていた方法ではなく、Facebookの制限のための単なる回避策です。
最後に、ちょうど私がしたように、URLサイズの制限に簡単に達することができるので、特定のソリューションに欠陥があることに言及する必要があります。