ファイルがサーバーに保存されている間にデータベースを使用してビデオを動的にロードするビデオページを作成しました。ビデオはページにプリロードされており、そのデータは問題なくいいねしてFacebookに投稿できます。新しいサムネイルをクリックすると、Facebookのいいね情報を新しいビデオコンテンツ(タイトル、URL、画像)に変更したいのですが。私は解決策を探しましたが、似たようなものはたくさんありますが、追加するという単純な解決策は私にはうまくいきFB.XFBML.parse();
ません。Ajax呼び出しが正常に戻ってきたら、次を使用してメタタグを更新します。
$("meta[property=og\\:title]").attr('content', videoTitle);
$("meta[property=og\\:url]").attr('content', "www.mySiteURL.com/index.php?videoID="+videoID);
$("meta[property=og\\:image]").attr('content', "www.mySiteURL.com/images/video/"+videoImageName);
しかし、これらが設定された直後に解析コードを実行すると、ボタンが更新されますが、同じ内容になっています。メタタグが実際にFirebugを使用して更新されていることがわかります。FBボタンがページ情報を適切に再スクレイプしてFBに送信しないだけです。htmlタグに名前空間を設定し、他のog:metasも設定していますが、これらは再スクレイプする必要がある3つです。
ある投稿で、誰かajax.complete(function(){FB.XFBML.parse();});
がメインページで直接似たようなものを使用しているのを見ました。正確なコードは覚えていませんが、アイデアは同じで、それでも機能しませんでした。成功すれば、ajax関数内で実行するだけで十分だと思いました。
私は何かが足りないのですか?
どんな助けでも大歓迎です!
ありがとう。
編集:各動画には、すべてajaxを介して読み込まれるため、og:urlに挿入される独自の直接URLがあることを追加する必要があります。Facebook Linter / Object Debuggerは、これらの一意のURLのいずれかを使用すると、各ビデオの正しいデータをすべて表示します。これは単なるスクレイピングの問題です。少なくとも、これに関する知識が限られているので、それが私には思えます。