2016-09-22 2 views
0

Я хочу, чтобы intergrate facebook login для моего приложения с помощью Javascript. Я успешно прошел this youtube guide, и я могу войти в браузер. Однако, на моем эмуляторе Android, произошла ошибка, и ничего не произошло, когда я нажал на кнопку. В eclipse эта ошибка была возвращена: «Неподготовленная эталонная ошибка: FB не определен в .../index.html« Я думаю, что, вероятно, это связано с стороной разработчика facebook, возможно, с допустимыми URI перенаправления OAuth или именами доменов ,
Вопрос:
Должны ли мои настройки в разработчике facebook быть использованы, если я хочу запустить эту функцию в приложении.Facebook login API javascript для мобильных приложений

Вот мои коды:

<head> 
       <meta charset="utf-8"> 
       <meta http-equiv="X-UA-Compatible" content="IE-edge"> 
       <title></title> 
       <link rel="stylesheet" href=""> 
       <script src="common.js"></script> 

        </head> 

        <body> 
        <script type="text/javascript"> 
        //initialize and setup facebook SDK 
         window.fbAsyncInit = function() { 
         FB.init({ 
          appId  : '201821216900862', 
          xfbml  : true, 
          version : 'v2.7' 
         }); 

         FB.getLoginStatus(function(response) { 
           if (response.status === 'connected') { 
           document.getElementById('status').innerHTML = 'We are connected'; 
           // console.log('Logged in.'); 
           } 
           else if (response.status === 'not_authorized'){ 
           document.getElementById('status').innerHTML = 'We are not logged in'; 
           } 
           else{ 
            document.getElementById('status').innerHTML= 'facebook not logged in'; 
           } 
          }); 
         }; 

         (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')); 


         function login(){ 
          FB.login(function(response){ 
           if (response.status === 'connected') { 
            document.getElementById('status').innerHTML = 'We are connected'; 
            document.getElementById('login').style.visibility = 'hidden'; 
            // console.log('Logged in.'); 
            } 
            else if (response.status === 'not_authorized'){ 
            document.getElementById('status').innerHTML = 'We are not logged in'; 
            } 
            else{ 
             document.getElementById('status').innerHTML= 'facebook not logged in'; 
            } 

          }, {scope: 'email'}); 
         } 

        </script> 
        hi 
        <div id="status"></div> 
        <button onclick="login()">Login</button> 
        </body> 

дополнительная информация: ссылка только ошибка произошла в функции Логин(), у меня нет никаких доменных имен, как я использую локальный,

+0

Нет, если это было о Действительных URI Перенаправления OAuth или любой из связанных настроек, сообщение об ошибке было бы иным. У вас есть простая ошибка JavaScript здесь: вы пытаетесь вызвать метод объекта FB, прежде чем этот объект существует. – CBroe

+0

да ты прав! Ошибка не была вызвана моими действительными URL-адресами перенаправления OAuth, но вызвана одной строкой «... style.visibility», –

ответ

0

Внутри Функция login(), document.getElementById('login').style.visibility = 'hidden'; не распознается. Ошибка исчезнет после удаления строки.

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