2013-05-08 4 views
2

FB Javascript SDK를 사용하여 페이스 북 로그인을 시도했습니다.자바 스크립트 SDK를 사용하여 Facebook 로그인 대화 상자가 닫히지 않습니다

로그인 후 오페라 브라우저에서만 로그인 창이 닫히지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?

나는 소스 코드를 다음 시도했다 : 은 (this website - LINK 인라인에)

<html> 
    <head></head> 
    <body> 
    <div id="fb-root"></div> 
    <script> 
     window.fbAsyncInit = function() { 

     FB.init({ 
      appId: '101103500012652', // App ID 
      channelUrl: '//www.milujse.cz/app/channel.html', // Channel File 
      status: true, 
      cookie: true, 
      xfbml: true 
     }); 

     FB.Event.subscribe('auth.authResponseChange', function(response) { 

      if (response.status === 'connected') { 
      testAPI(); 
      } else if (response.status === 'not_authorized') { 

      } else { 

      } 
     }); 
     }; 

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

     function testAPI() { 
     FB.api('/me', function(response) { 
      alert('Good to see you, ' + response.name + '.'); 
     }); 
     } 

     function loginFB() 
     { 
     FB.login(function(response) { 
      if (response.authResponse) { 
      testAPI(); 
      } else { 
      } 
     }); 
     } 

     function logoutFB() 
     { 
     FB.logout(function(response) { 
     }); 
     } 
    </script> 

    <input type="button" value="Login" onclick="loginFB(); 
     return false;" /> 
    <input type="button" value="Logout" onclick="logoutFB(); 
     return false;" /> 
    </body> 
</html> 
+0

콘솔에 자바 스크립트 오류가 표시됩니까? – rncrtr

+0

콘솔에서 자바 스크립트 오류가 아닙니다. – Jenan

+0

다른 브라우저에서 Facebook 구현과 비슷한 문제가있었습니다. 상태를 유지하기 위해 로그인 및 API 메소드를 통해 콜백 함수를 전달해야했지만 이것이 Opera 문제와 관련이 있는지는 알 수 없습니다. – rncrtr

답변

2

은 브라우저를 확인하는 것으로 간주 가지고 당으로도 오페라의 버그이며 오페라가 페이스 북과 연결하기 위해 다른 방법을 사용하고 있다면, 내가 OAuth를 함께 의미 당신 팝업을 사용하지 않고 전체 페이지를 Facebook 로그인 페이지로 리디렉션 할 수 있으므로 팝업을 닫을 수 없다는 문제가 없습니다. "https://graph.facebook.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=http:YOUR_CALLBACK-URL&scope=WHAT_YOU_WANT"

1

과 같은 전체 페이지에 대한 링크 예를 들어 브라우저를 닫을 때 브라우저 독립적 로그인/로그 아웃 논리를 프로그래밍하는 것은 결과적으로 구현하기 어렵습니다.

(NULL)

com.example.vaadintests 패키지를 아래의 코드를 사용 SETUSER에서 중단 점을 설정하는 검사;

import com.vaadin.Application; import com.vaadin.ui.Window; import com.vaadin.ui.Window.CloseEvent; import com.vaadin.ui.Window.CloseListener;

public class VaadintestsApplication extends Application 
{ 
    @Override 
    public void init() 
    { 
     final Window rootWindow = new Window(); 
     setMainWindow(rootWindow); 

     rootWindow.addListener(new CloseListener() 
     { 
      @Override 
      public void windowClose(CloseEvent e) 
      { 
       setUser(null); 
      } 
     }); 

    } 
} 
관련 문제