54

重複の可能性:
Facebook Sharer はどのように画像を選択しますか?

さまざまな速度で運転しているときに発生する可能性のある交通事故を示すフラッシュ アプリを作成しています。ユーザーがこの情報を Facebook で共有できるようにしたいと考えています。ただし、これには、Facebook に表示されるテキストを何らかの方法でカスタマイズできることが必要です。

(Flash アプリ自体から) 空白のウィンドウで開かれる URL を作成しています。u および t パラメーターを指定し、生成されたメッセージを 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 ページでメタ タグを使用してサムネイル画像、タイトル、説明を指定できることは承知していますが、このコンテンツの一部は Flash アプリ内の計算に基づく必要があります。

4

6 に答える 6

66

2016年アップデート

共有デバッガーを使用して、問題を特定します。

Facebook共有のベスト プラクティスに従っていることを確認してください。

Open Graph マークアップを正しく使用していることを確認してください。

元の回答

ここですでに述べたことには同意しますが、Facebook 開発者サイト のドキュメントによると、次のメタ タグを使用することをお勧めします。

<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />

メタ タグで目的を達成できず、URL 埋め込みバージョンが必要な場合は、以下の @Lelis718 の回答を参照してください。

于 2010-10-04T20:40:15.390 に答える
29

このサイトには解決策があると思います。今すぐテストします。Facebook が share.php のパラメータを変更したようです。共有ウィンドウのテキストと画像をカスタマイズするには、「p」配列にパラメータを配置する必要があります。

http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/

見てみな。

于 2011-09-08T15:11:10.117 に答える
4

私は一週間前にこの同じ問題を抱えていました。

まず最初に、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>

これがあなたのために働くかどうか私に知らせてください、それは本質的に私のためにしたことです:)

于 2010-10-04T02:06:02.117 に答える
2

私はものを表示する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で変数を渡します...

aname="fb_share" share_url="MYURL/sharer.php?title=TITLE&desc=DESC"

お役に立てれば...

于 2010-12-12T10:35:35.817 に答える
2

私は実際に同様の問題を抱えています。複数のラジオ ボタンがあるページがあります。各ボタンは、変更時に 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 に強制的に取得させるためです。

于 2010-04-17T00:28:02.750 に答える
0

あなたはできません、それはそれをサポートしていません。

なぜこれらの計算がフラッシュアプ​​リ内でのみ行われる必要があるのか​​、私は尋ねなければなりません。

Flashアプリから取得したメタデータに明確に関連するURLに移動する必要があります。そうでなければ、フラッシュアプ​​リはあなたがヒットしたURLに応じて値を取得することをどのように知るのでしょうか。

オプションは次のとおりです。

  • ページで計算する:ページを提供するときは、サーバーで同じ計算を行い、ページのメタデータでタイトルなどを送信する必要があります。
  • クエリ文字列のメタデータをサイトに送信する:計算をサーバーから遠ざける必要がある場合、別のトリックは、ユーザーがFacebookからサイトにアクセスするためにクリックするURLにメタデータを明示的に設定することです。ページを処理するときは、メタデータセクションにコピーして戻すだけです(適切にエンコードすることを忘れないでください)。URLサイズの制限により、これは明らかに制限されています。
  • 計算結果をクエリ文字列でサイトに送信します。これらの計算でメタデータで使用されるいくつかの数値が得られる場合は、ユーザーがクリックしてサイトに戻るURLのクエリ文字列にその数値を含めることができます。これにより、URLサイズに問題が発生しない可能性が高くなります。

なぜこれが賛成ですか?それは間違っています。あなたはできます-あなたの共有にカスタムタイトル、説明、画像を追加することがサポートされています。私はいつもそれをします。–ダスティンファインアウト3時間前

OPは、ページからそれを提供できることをすでに知っていたが、値をFacebookに直接(ターゲットページを介さずに)渡したいと非常に明確に述べました。

さらに、この問題を回避するために3つの異なるオプションを提供したことに注意してください。そのうちの1つは、後で回答として投稿したものです。あなたのオプションは、OPがそれを行おうとしていた方法ではなく、Facebookの制限のための単なる回避策です。

最後に、私が行ったように、URLサイズの制限に簡単に達する可能性があるため、特定のソリューションに欠陥があることに注意する必要があります。

于 2010-10-03T20:58:03.420 に答える