0
<script> 
     var userId = '1'; 
     var appId = 'MYAPPID'; 
     var appHost = 'https://localhost:44300/'; 
     // Api holder 
     FBe = {}; 

     // FB JS SDK 
     window.fbAsyncInit = function() { 
      FBe = FB; 
      FBe.init({ 
       appId: appId, 
       status: true, 
       cookie: true, 
       xfbml: true, 
       frictionlessRequests: true 
      }); 
     }; 

     (function (d, debug) { 
      var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
      if (d.getElementById(id)) { 
       return; 
      } 
      js = d.createElement('script'); 
      js.id = id; 
      js.async = true; 
      js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js"; 
      ref.parentNode.insertBefore(js, ref); 
     }(document, /*debug*/ false)); 

    </script> 
    <script> 
     // Test 
     function fbTest() { 
      FBe.api('/me', function (response) { 
       alert('Your name is ' + response.name); 
      }); 
     } 


     fbTest(); 
    </script> 

мой код выше дает мне это:НЭП не является функцией, даже если она определена

TypeError: FBe.api is not a function

Почему я получаю эту ошибку?

Как я могу это исправить?

ответ

1

Вы звоните fbTest() слишком рано. Вы должны подождать, пока не будет вызван window.fbAsyncInit. FB API еще не загружен.

Поскольку вы загружаете API FB асинхронно, вы не можете использовать его до тех пор, пока не будет вызван window.fbAsyncInit. Любое использование API FB при загрузке страницы должно вызываться от window.fbAsyncInit.

Смежные вопросы