1. ホーム
  2. javascript

[解決済み] Webアプリでfacebook共有を実装する際にエラーが発生する パラメータ app_id is required

2022-02-09 22:05:40

質問

私は、JavaとjspでWebアプリケーションを構築しています。 私のWebアプリケーションでは、Facebookの共有機能に取り組んでいます。 私はFacebookのログインで行われました。しかし、共有に問題が発生しました。

エラーは The parameter app_id is required エラーメッセージとともにポップアップが表示され、ポップアップブラウザのURLは次のようになります。

(https://www.facebook.com/dialog/share?app_id=&display=popup&e2e=......)

私のコードは HIMLでは

 <div id="fb-root"></div>
   <script src="//connect.facebook.net/en_US/all.js"></script>

 <button type="button" id="btnfbShare" class="btn sign-btn fr">Share on Facebook</button>

IN js

facebook sdkの初期化コード

 window.fbAsyncInit = function() {
                FB.init({
                  appId      : '10761986057291117',
                  xfbml      : true,
                  version    : 'v2.4'
                });
              };

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

そして、共有ボタンをクリックすると

 $("#btnfbShare").click(function(event){
                      alert("in share");
                      FB.ui(
                              {

                               method: 'share',
                               href: 'https://developers.facebook.com/docs/'
                             }, function(response){});

                   });

Sdkのインストール時にアプリIDを指定しているのですが、何が問題なのでしょうか?

解決方法を教えてください。

解決しました。

ボタンクリック時の初期化処理を再度記述する必要がある

$("#btnfbShare").click(function(event){                         
    FB.init({
        appId      : '10761986057291117',
        xfbml      : true,
        version    : 'v2.4'
    });

    FB.ui({
        method: 'share',
        href: 'https://developers.facebook.com/docs/'
        }, function(response){});
});