2

私は成功しなければこの問題を解決しようと数日間過ごしました。問題は、ユーザーが同じボタンをクリックしたときに、壁に何か好きであることを示すものではないということです。コードはlocalhostのテスト環境で正常に動作しますが、本番環境では動作しません。ユーザーの行動が壁に表示されないようにする

私のクライアントは、wordpress用の画像ギャラリープラグインと、ユーザーがサムネイルをクリックしたときに大きなバージョンの画像を表示するためのFancyBoxというライトボックスプラグインを使用しています。彼は私に、fancyboxごとにボタンのようなfacebookを追加するように頼んだ。

ファンシーボックスが動的に生成されるので、fancyboxがレンダリングされるたびに新しいボタンiframeを生成します。 likeボタンiframeによって使用されるURLは、ユーザーがクリックした画像に固有です。コードはギャラリーURLに& photo =/location/of/photo.jpgを追加します。カスタムURL全体がencodeURIComponent()に渡され、iframeに渡されます。ここで

のようなボタンのコードが滞りなく動作しているようIFRAME

var currentURL = document.URL, 
    currentIMG = $("#fancybox-img").attr("src").split("http://www.downsplash.com").pop(); 
if (currentURL.match("&photo=")) { 
    var currentURL = currentURL.split("&photo=").shift(); 
}; 
var thisURL = encodeURIComponent(currentURL + "&photo=" + currentIMG); 
<span id="fancybox-title-over"> 
    <div id="facebook-like" style="display:inline-block;"> 
     <iframe src="//www.facebook.com/plugins/like.php?href=" + thisURL + "&amp;send=false&amp;layout=button_count&amp;width=80&amp;show_faces=true&amp;action=like&amp;colorscheme=dark&amp;font&amp;height=21&amp;appId=314592468583405" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe> 
    </div> 
</span> 

Here is a link to the code running in production.

を生成するために使用されるコードスニペットで、それはあなたが好きなことを可能にすると、写真とは異なり。唯一の問題は、写真が好きなときにユーザーの壁に何も表示されないことです。

注:ローカルホスト上でこのコードをテストするとき、それはFacebookへ投稿DOES/&写真= /場所/の カスタムなしphoto.jpg

  • を単にベースURLを使用する場合に

    1. すべてが正常に動作します。

    なぜこれらのお気に入りがユーザーのFacebookの壁に表示されないのか分かりません。誰にもアイデアはありますか?

  • +0

    クライアントから壁に投稿する権限が与えられていますか? – Chriseyre2000

    +0

    ボタンiframeのようなfacebookを使っているだけなので、許可は必要ありません。ユーザーの壁にカスタム情報を投稿しようとしていません。ちょうど彼らがFacebookで自動的に処理されるべきものを気に入ったという事実。 –

    +0

    それは働いていましたが、私は子供の写真が好きでしたが、他の人の写真を私のタイムラインに掲載しました。 –

    答えて

    0

    Heeraで指摘されているように、プロダクションコードは動作していますが、Facebookがユーザーの壁に投稿すると、& photo =/location/of/photo.jpgを含まないポートフォリオのURLが投稿されます。これは、ヘッダにOpen Graphメタタグが存在し、FacebookにポートフォリオのURLなどをフィードするために起こります。

    <meta property="og:url" content="http://www.downsplash.com/?portfolio=portraits"> 
    

    すでにポートフォリオのURLが好きだったので、自分の壁に投稿が表示されませんでした。このオープングラフのタグは、「Simple Facebook Connect」と「Tweet、Like、Google+、およびShare」プラグインの両方によってヘッダーに自動的に追加されます。これはまた、私のコードが私のlocalhostテストサイトで動作する理由を説明しています。なぜなら、Facebookは、写真が好きだったときにopenhostタグのlocalhostをスキャンできなかったからです。

    ありがとうございました!

    編集:私は、プラグインを無効にし、適切にHTML形式で表示された私のオープングラフタグは、私は与えられたURLのためのオープングラフタグをキャッシュのFacebookに関連する問題を経験したことを確認した後

    。これにより、以前の間違ったURLリダイレクトが引き続き発生しました。 Facebook's Open Graph DebuggerにアクセスしてURLを入力して解決しました。これにより、Facebookはページの開いているグラフタグのキャッシュをリフレッシュします。

    +1

    こんにちは、ネイト!この問題を解決する方法を教えてください。あなたは(fancyboxに付属しているものを持っています)、私はメイン画像の下で親指カルーセルを使っています。私はog:urlメタタグを動的にするべきですが、動作させることはできませんでした。 – cbarg

    関連する問題