2014-09-11 32 views
0

我在Facebook上登錄的工作燈工作(演示機應用檢查facebook集成),我已經實現了用Facebook的Javascript SDK,這裏是我的代碼登錄按鈕工作燈Facebook的登錄按鈕不會顯示在Android模擬器

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Facebook Login JavaScript Example</title> 
<meta name="viewport" 
    content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> 
<!-- 
       <link rel="shortcut icon" href="images/favicon.png"> 
       <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
      --> 
<link rel="stylesheet" href="css/main.css"> 
<script>window.$ = window.jQuery = WLJQ;</script> 
</head> 

<body style="display: none;"> 
<script> 
    // This is called with the results from from FB.getLoginStatus(). 
    function statusChangeCallback(response) { 
    console.log('statusChangeCallback'); 
    console.log(response); 
    // The response object is returned with a status field that lets the 
    // app know the current login status of the person. 
    // Full docs on the response object can be found in the documentation 
    // for FB.getLoginStatus(). 
    if (response.status === 'connected') { 
     // Logged into your app and Facebook. 
     testAPI(); 
    } else if (response.status === 'not_authorized') { 
     // The person is logged into Facebook, but not your app. 
     document.getElementById('status').innerHTML = 'Please log ' + 
     'into this app.'; 
    } else { 
     // The person is not logged into Facebook, so we're not sure if 
     // they are logged into this app or not. 
     document.getElementById('status').innerHTML = 'Please log ' + 
     'into Facebook.'; 
    } 
    } 

    // This function is called when someone finishes with the Login 
    // Button. See the onlogin handler attached to it in the sample 
    // code below. 
    function checkLoginState() { 
    FB.getLoginStatus(function(response) { 
     statusChangeCallback(response); 
    }); 
    } 

    window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : '721457581245356', 
    cookie  : true, // enable cookies to allow the server to access 
         // the session 
    xfbml  : true, // parse social plugins on this page 
    version : 'v2.1' // use version 2.1 
    }); 

    // Now that we've initialized the JavaScript SDK, we call 
    // FB.getLoginStatus(). This function gets the state of the 
    // person visiting this page and can return one of three states to 
    // the callback you provide. They can be: 
    // 
    // 1. Logged into your app ('connected') 
    // 2. Logged into Facebook, but not your app ('not_authorized') 
    // 3. Not logged into Facebook and can't tell if they are logged into 
    // your app or not. 
    // 
    // These three cases are handled in the callback function. 

    FB.getLoginStatus(function(response) { 
    statusChangeCallback(response); 
    }); 

    }; 

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

    // Here we run a very simple test of the Graph API after login is 
    // successful. See statusChangeCallback() for when this call is made. 
    function testAPI() { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Successful login for: ' + response.name); 
     document.getElementById('status').innerHTML = 
     'Thanks for logging in, ' + response.name + '!'; 
    }); 
    } 
</script> 

<!--application UI goes here--> 
    Facebook Page 

<div id="fb-root"> 

     <!-- 
      Below we include the Login Button social plugin. This button uses 
      the JavaScript SDK to present a graphical Login button that triggers 
      the FB.login() function when clicked. 
     --> 

      <fb:login-button scope="public_profile,email" onlogin="checkLoginState();"> 
      </fb:login-button> 

    <div id="status"></div> 

    <div class="fb-like" 
     data-share="true" 
     data-width="450" 
     data-show-faces="true" 
     style="padding-top: 10px;"></div> 

</div> 

    <script src="js/initOptions.js"></script> 
    <script src="js/main.js"></script> 
    <script src="js/messages.js"></script> 

</body> 
</html> 

當我在Worklight Android Simulator上運行應用程序登錄按鈕顯示,但在登錄按鈕單擊我遇到錯誤此錯誤是什麼? enter image description here

而現在,當我試圖在Android模擬器運行(由工作燈創建)的Android項目不顯示登錄按鈕 enter image description here

被重新定向的網址是什麼關係?或回電url? 我試過Google搜索了很多,但沒有任何工作 那是什麼錯誤是什麼意思? 可以any1幫助嗎?

+0

當您在Android模擬器中運行時,您在LogCat中看到了什麼? – 2014-09-11 13:15:24

+0

未捕獲異常:未捕獲ReferenceError:解析未在(compiled_code)處定義:41 – 2014-09-11 13:17:13

+0

這是什麼錯誤 **「給定的URL不被應用程序配置允許:一個或多個給定的URL不被應用程序它必須與網站URL或Canvas URL匹配,或者該域必須是其中一個應用程序域的子域。「** 請回復我在這裏卡住 – 2014-09-12 12:26:13

回答

0

我的建議是使用Facebook提供的Native Android SDK。

如果您使用6.1及更低版本,則可以使用WL.NativePage.show API。
如果您使用的是6.2及更高版本,則可以使用SendAction API。

使用上述API,您可以調用一個新的頁面(類),您將在其中集成原生Android SDK,從而使您能夠顯示Facebook登錄頁面和/或使用Facebook提供的其他選項。

相關問題