2

私は、Facebook のソーシャル プラグイン (ボタン、おすすめ、送信ボタンなど) を備えた小さな Web ページを 1 つ開発しました。約 1 か月前までは、localhost でボタンとクリック イベントを正常にテストできました。しかし、突然ボタンがローカルホストで機能しなくなりました。「localtunnel」を介してパブリック IP に Web ページをデプロイした場合にのみ機能します。ローカルホストでは、いいねの数と名前が表示されますが、ボタンをクリックしてもフライアウトは表示されません。また、サブスクライブされたイベント「edge.create」は発生しません。

Facebookのいいねボタンウィジェットページから必要なすべてのJavaScriptをコピーしました。また、localhost とトンネル展開のトラフィック パターンに違いがあることもわかりました。GET oauth リクエストは、localhost では 302 ステータスを返しますが、パブリック ドメインでは 200 を返します。また、パブリック ドメインでの展開では、ボタンをクリックして CSS と画像を取得した後、多くの GET 要求が行われます。一方、localhost ページは 1 つのリクエストのみを行い、そこで停止します。なぜこれが起こっているのか理解できません。

Facebook は最近、localhost でボタンをテストするために必要なもののサポートを停止しましたか?

4

2 に答える 2

2

@C-Danの回答を補完して、data-href属性がローカルホストではなくライブサイトを指していることを確認してください。それは私のためにトリックをしました。

于 2013-08-14T17:03:44.910 に答える
1

localhost でもいいねといいねを確認できます (私のサイトのボタンとカウント)

あなたが持っていることを確認してください

<html xmlns:fb="http://ogp.me/ns/fb#">

htmlタグに

そして、実際のlike divは、本体のどこにでもあります-

<div class="fb-like" data-font="verdana" data-href="http://facebook.com/CDanArt" data-layout="button_count" data-send="true" data-show-faces="false" data-width="120" style="margin: 0px 0px 0px 0px;"></div>

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=146351542070012";
  fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
</script>

body タグが終了する直前。

もちろん、同様の div で data-href を使用し、スクリプト関数で appID を使用します。

このコードは、ローカルホストで完全に機能しています。コードをそのままコピーしても localhost に「いいね」ボタンが表示されない場合は、他の何かが「いいね」ボタンを壊していないかどうかを確認してください。

于 2012-04-24T20:45:15.667 に答える