Как мне исправить «Uncaught ReferenceError: FB не определен»? - PullRequest
0 голосов
/ 06 января 2019

Когда я запускаю этот код в Google Chrome, он выдает следующую ошибку:

Uncaught ReferenceError : FB не определено

Я прочитал несколько других вопросов, касающихся той же ошибки, но, похоже, ни у одного из них нет решения для этого.

window.fbAsyncInit = function() {
  FB.init({
    appId : 'xxxxxxxxxxxxxxx',
    autoLogAppEvents : true,
    xfbml : true,
    version : 'v3.2'
  });
};

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

 FB.api(
   '/me',
   'GET',
   {"fields":"id,name,posts{picture,message,comments{likes}}"},
   function(response) {
       // Insert your code here
   }
 );

Я хочу, чтобы API Facebook возвращал выбранные мной поля.

Мой код является копией кода, указанного в документации Facebook.

1 Ответ

0 голосов
/ 06 января 2019

Вы не можете использовать FB до инициализации JS SDK:

window.fbAsyncInit = function() {
  FB.init({
    appId : 'xxxxxxxxxxxxxxx',
    autoLogAppEvents : true,
    xfbml : true,
    version : 'v3.2'
  });

  FB.api(
   '/me',
   'GET',
   {"fields":"id,name,posts{picture,message,comments{likes}}"},
   function(response) {
       console.log(response);
   }
  );
};

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

Кстати, этот код не будет работать без авторизации пользователя. Как это сделать, подробно описано здесь: https://developers.facebook.com/docs/facebook-login/web/

В документах также приведен полный пример: https://developers.facebook.com/docs/facebook-login/web/#example

...