2013-12-15 3 views
3

나는 html5를 기반으로 Android 및 iPhone 용 하이브리드 응용 프로그램을 구축하고 있습니다. 나는 페이스 북으로 나의 애플 리케이션 로그인에서 구현하고 싶다. 응용 프로그램의 모든 HTML은 장치의 로컬입니다. 나는 페이스 북에서 토큰을 로컬 스토리지에 저장하기 위해 서버가 없다. Facebook 자바 스크립트 SDK로 이것을 구현할 수 있습니까? Facebook에서 로그인하는 방법 하이브리드 HTML5 기반 응용 프로그램에서 javascript SDK

나는 페이스 북 개발자 사이트에서 코드 시도 :

<html> 
<head></head> 
<body> 
<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : '{your-app-id}', 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
    }); 

    // Here we subscribe to the auth.authResponseChange JavaScript event. This event is fired 
    // for any authentication related change, such as login, logout or session refresh. This means that 
    // whenever someone who was previously logged out tries to log in again, the correct case below 
    // will be handled. 
    FB.Event.subscribe('auth.authResponseChange', function(response) { 
    // Here we specify what we do with the response anytime this event occurs. 
    if (response.status === 'connected') { 
     // The response object is returned with a status field that lets the app know the current 
     // login status of the person. In this case, we're handling the situation where they 
     // have logged in to the app. 
     testAPI(); 
    } else if (response.status === 'not_authorized') { 
     // In this case, the person is logged into Facebook, but not into the app, so we call 
     // FB.login() to prompt them to do so. 
     // In real-life usage, you wouldn't want to immediately prompt someone to login 
     // like this, for two reasons: 
     // (1) JavaScript created popup windows are blocked by most browsers unless they 
     // result from direct interaction from people using the app (such as a mouse click) 
     // (2) it is a bad experience to be continually prompted to login upon page load. 
     FB.login(); 
    } else { 
     // In this case, the person is not logged into Facebook, so we call the login() 
     // function to prompt them to do so. Note that at this stage there is no indication 
     // of whether they are logged into the app. If they aren't then they'll see the Login 
     // dialog right after they log in to Facebook. 
     // The same caveats as above apply to the FB.login() call here. 
     FB.login(); 
    } 
    }); 
    }; 

    // Load the SDK asynchronously 
    (function(d){ 
    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.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 

    // Here we run a very simple test of the Graph API after login is successful. 
    // This testAPI() function is only called in those cases. 
    function testAPI() { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
    }); 
    } 
</script> 

<!-- 
    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 show-faces="true" width="200" max-rows="1"></fb:login-button> 
</body> 
</html> 

을하지만 브라우저 콘솔에서 다음과 같은 오류 얻을 :

"을 감안할 때 URL이 : 응용 프로그램 구성에서 하나를 허용하거나되지 않습니다 해당 URL 중 더 많은 수가 앱 설정에 의해 허용되지 않습니다. 해당 URL은 이고 웹 사이트 URL 또는 Canvas URL과 일치해야합니다. 그렇지 않으면 도메인이 하위 도메인 인 이어야합니다. "

당신의 애플 리케이션에서
+1

토비아스 뭔가를해야 config.xml에, 혹시이 문제를 해결 거죠? – Visser

답변

0

당신이 <access origin="*">