sharer.php メソッドを使用する SHARE ボタンを実装しました。画像は最初の試行ではスクレイピングされませんが、2 回目の試行後にのみ取得されます。Facebookサーバーによってキャッシュされた後だと思います。
これが私の URL で、[SHARE] ボタンをクリックするとどうなるかを示します
http://viddsee.com/video.php?video=wild_fire_2011
どんな助けでも大歓迎です!
デレク
sharer.php メソッドを使用する SHARE ボタンを実装しました。画像は最初の試行ではスクレイピングされませんが、2 回目の試行後にのみ取得されます。Facebookサーバーによってキャッシュされた後だと思います。
これが私の URL で、[SHARE] ボタンをクリックするとどうなるかを示します
http://viddsee.com/video.php?video=wild_fire_2011
どんな助けでも大歓迎です!
デレク
これは事前キャッシュの問題です。ここをチェックしてください: https://developers.facebook.com/docs/sharing/best-practices#pre-cache-images
この問題に対するあまりエレガントではない回避策を見つけました。新しいリンクを共有しようとする前に facebookスクレーパー(デバッガー) を使用すると、これが発生しないことがわかったので、ユーザーがリンクを共有する前にこれを行う方法を探し始めました。
これは私のソリューションで、約 80% の時間 (jQuery) で動作します。
$.post("https://graph.facebook.com/?id="+encodeURIComponent(url_to_be_shared)+"&scrape=true",
function(contents){
//here you do the facebook share code
});
これは時々失敗して応答がまったくないため、次のようなものを追加することをお勧めします。
$.post("https://graph.facebook.com/?id="+encodeURIComponent(url_to_be_shared)+"&scrape=true",
function(contents){
//here you do the facebook share code
}).fail(function(){
//call function again if failed
});
私が言ったように、これはエレガントではないソリューションであり、約 80% の時間で動作します。これを最大化するために、さらにエレガントではないソリューションを作成し、Facebook グラフ API への 3 つ (はい、3 つ) の投稿呼び出しをネストしました。 3 つの呼び出しを完了するのに約 2 ~ 5 秒かかりますが、それは何とかなります。これを行った後、画像が見つからないときに変更されるかどうかを確認するために ajax.post 応答を確認できるのではないかと考えたので、それを繰り返すことができましたが、それを行う時間が見つからなかったので、あなたはそれをチェックすることになります、私に知らせてください。
よろしく