0

Facebookの共有ボタンを作成する私の方法は次のとおり です。1。share.phpを作成します(Facebookはこの偽のWebサイトでメタデータをキャプチャし、共有したい実際のWebサイトにリダイレクトします

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="https://www.facebook.com/2008/fbml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?php echo $_GET['title'];?></title>
        <meta property="og:url" content="<?php echo $_GET['url'];?>" />
        <meta property="og:title" content="<?php echo $_GET['title'];?>" />
        <meta property="og:description" content="<?php echo $_GET['title'];?> "/>
        <? 
        if (isset($_GET['leftImg']) && $_GET['leftImg'] != 'undefined') {
            echo '<meta property="og:image" content="'.$_GET['leftImg'].'"/>';
        }
        if (isset($_GET['rightImg']) && $_GET['rightImg'] != 'undefined') {
            echo '<meta property="og:image" content="'.$_GET['rightImg'].'"/>';
        }
        ?>
    </head>
    <body>
        <script>
            window.location.href = "<?php echo $_GET['redirect'];?>";
        </script>
    </body>

</html>

2.share.phpで必要なデータはメインページから渡されます

 window.open('http://www.facebook.com/sharer.php?u=' + encodeURIComponent('http://' + window.location.hostname + '/share.php?url=http://yahoo.com&title=test&redirect=..&leftImg=......&' ),'sharer','toolbar=0,status=0,width=826px,height=536');

問題は、og:urlはどうあるべきかということです。2つのリンクがあります:share.phpと私が共有したい実際のウェブサイト、

share.php?title = ...&description = ..を使用する場合でも、特定のURLを指定 する必要がありますが、それは奇妙です。share.php?url = share.php?url = share.phpになり、最終的には引き続き共有するための正しいURLを参照できません

私が実際のウェブサイトを使用する場合、私の考えはすべてのメタがshare.phpにあるため、メタデータを収集できません。

問題を解決する方法は?ありがとう

!!!!!!!!!!!!!!! 2013年11月4日に更新:!!!!!!!!!!!!!!

私は根本的な問題を理解しました、それは画像の異なるソースによって引き起こされます:

eg. http://www.tekxon.com.pk/sites/all/themes/bluemasters/images/gallery/3.jpg

この画像は、Facebookによって共有ページで期待どおりにキャプチャされ、問題なく機能しています。

eg. http://54.251.107.161/source/test2/2012/05/07/0/3/A/Content/15/Pg015.png 

ただし、サーバーでホストされているこの画像は、初めて共有ページに表示されるのではなく、ページをリロードしたときにのみ表示されます。*共有ページには表示されていませんが、Facebookホームページの共有コンテンツに画像が表示されて存在しています。

なぜそれが起こるのですか、それはファイアウォールのいくつかの誤った設定が原因ですか?ありがとう

4

4 に答える 4

3

og:urlリダイレクト先のWebサイトである必要があります

于 2013-04-10T21:31:56.243 に答える
2

og:urlはメタデータを含むWebサイトである必要があります。この場合、リダイレクトとメタデータを使用してWebサイトを作成するか、share.php?url=the_urlを参照する必要があります

于 2013-04-10T18:24:09.680 に答える
1

私はあなたがog:urlパラメータによって誤解されただけだと思います:

og:url-グラフで永続IDとして使用されるオブジェクトの正規URL

完全に正当に聞こえますが、:そのパラメーターを指定すると、Facebookは現在のページからではなくそのURLからメタデータをフェッチします。これが、参照されたURLをそこに配置したときにメタデータがない理由です。そしてまた、その厄介な理由share.php?url=share.php?url=share.php...

あなたがしようとしていることは、href属性を使用して行われます:https ://developers.facebook.com/docs/reference/plugins/like/

何を作成しているのかわかりませんが、この方法で、リダイレクト先のページに共有ボタンを統合することもできます。次に、その偽のメタデータページを設定し、それをog:urlその(以前はリダイレクトされた)ページにスローします:)

于 2013-04-10T18:02:10.537 に答える
0

あなたはデモに従うことができます、あなたが幸運を祈っています。

http://www.kimwoodbridge.com/how-to-create-your-one-facebook-share-url/

ちなみに、新しい方法をテストする前に。fbのセッションをクリアしたほうがいいです。 http://developers.facebook.com/tools/debug/og/object?q=http://yourwebsite.com

于 2013-04-15T07:34:27.847 に答える