12

Facebook Developers ページから直接コピーしたコードを使用して、基本的な Facebook の「いいね/シェア」ボタンを Web ページに追加しました。コードには 2 つの部分があります。JavaScript ブロックと、「fb のような」クラスの div タグです。JavaScript は次のとおりです。

<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";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

ボタンを表示する場所の div タグは次のとおりです。

<div class="fb-like" data-href="http://www.bethcake.com" data-width="90" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div>

私が遭遇している問題は次のとおりです。

  1. Web ページが読み込まれると、2 つの JavaScript 警告が表示されます。警告は、私が書いたコードではなく、connect.facebook.net ソース コードの 233 行目を参照しています。彼らです:

    • 無効なアプリ ID: アプリケーション ID を表す数値または数値文字列である必要があります。
    • FB.init() を呼び出す前に FB.getLoginStatus() が呼び出されました。
  2. また、ページの読み込み時に、php エラー (like.php.1:948) が表示されます。

    このエラーは不可解です。まず、フレームを使用していません。第二に、プロトコルは一致しており、ポートについては何もありません。もちろん、ドメインは一致しません。Facebook ページの「いいね」を集めようとしているわけではありません。外部サイトの「いいね!」を取得したい。何か不足していますか?

  3. Facebook Open Graph Object Debugger で URL を実行しました。それは私が理解していない多くの警告をもたらしました。彼らです:

    • fb:admins および fb:app_id タグがありません。
    • og:title、og:type、および og:image がありません。
    • og:url、go:title、go:description、および go:image プロパティを明示的に指定する必要があります

じゃ、いいよ。しかし、これらをどこにどのように追加すればよいのでしょうか? Facebook のドキュメントに目を通し、stackoverflow を検索しましたが、成功しませんでした。これらが div タグの data-href 文字列に追加されることになっている場合、例を教えてください。

4

4 に答える 4

11

最初の問題で言及したのと同じ JavaScript 警告が表示され、Facebook コードの URL に appId パラメータを追加すると、両方が解決されました。したがって、次の行を変更するだけです。

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=1234567891234567";

Facebook appId を取得するには、 https ://developers.facebook.com/apps にアクセスしてください。

于 2014-01-29T16:27:23.300 に答える
2

上で @smohajer が指摘したように、appId を追加する必要がありますが、新しい SDK ではいくつかの小さな変更を行う必要があります。そうしないと、いくつかのエラーまたは警告が表示されます。

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=1234567891234567&version=v2.2";

2015 年 4 月 30 日までにアップグレードする必要があります: https://developers.facebook.com/docs/apps/upgrading

于 2015-04-21T15:13:05.673 に答える
2

この問題はすでに解決されていることを願っています。

しかし、これが誰かの助けになる場合、この答えは、FB.init() を呼び出す前に呼び出される「FB.getLoginStatus()」について役立ちます -> https://stackoverflow.com/a/16593474

于 2014-01-04T10:08:00.573 に答える
0

これが私のために働いたものです(ここで私の答えを見つけましたhttp://developwithguru.com/solve-invalid-app-id-must-be-a-number-or-numeric-string-representing-the-application-id/

基本的に、1) 開発者ページに移動します 2) 新しいアプリを作成します 3) ID を取得します 4) ID をコードに適用します..eg(js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId =16digIdHere";)

于 2014-12-29T11:49:45.677 に答える