2013-06-02 7 views
31

내가 작업하고있는 웹 사이트에는 Facebook 로그인 옵션이 있지만 최근에 사용자가보고하지 않았다고보고했습니다.Facebook 로그인 API HTTPS 문제

Blocked a frame with origin "https://www.facebook.com" from accessing a frame 
with origin "http://static.ak.facebook.com". The frame requesting access has 
a protocol of "https", the frame being accessed has a protocol of "http". 
Protocols must match. 

나는 그것이 같은 프로토콜에서 작동하도록 얻을 것이다 API에 공급할 수있는 옵션이 있습니까 : 나는 등, 내 콘솔에서이 오류가 발생했습니다 내 확장을 비활성화? 참고로 기본 웹 사이트는 HTTP (S)가 아닙니다.

갑자기 작동이 멈춘 것처럼 보이기 때문에 특히 이상합니다 (그러나이 시스템을 처음 배우면서이 문제는 항상 있었지만 가능했습니다).

당신이 자바 스크립트 SDK를 비동기를로드하지 않는 경우
<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId : ..., // App ID 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the session 
      xfbml : true, // parse XFBML 
      channel: '//...mychannel.../channel' 
     }); 

     FB.Event.subscribe('auth.authResponseChange', function(fbResponse) { 
      // function that logs in user 
     }); 
    }; 

    // 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)); 
</script> 
+5

계속이 질문에 대한 답변을 계속 확인합니다. 최신 크롬/사파리 보안 업데이트가 모달을 별도의 창에 열 때 모든 Facebook 상호 작용을 중단시킨 것처럼 보입니다. 프로토콜 불일치 오류 (위)는 특히 개발자가 사용 된 프로토콜을 제어 할 수 없기 때문에 실망 스럽습니다. –

+0

흠 ... Firefox에서도 작동하지 않지만 "[16 : 51 : 47.802] Mutation Events 사용이 권장되지 않습니다. @ https : //fbstatic-a.akamaihd 대신 MutationObserver를 사용하십시오. net/rsrc.php/v2/y4/r/dePwLAaASOW.js : 59 " – SapphireSun

+0

설정 한 fb 설정을 확인 했습니까? – Farnsbert

답변

-3

가치가있는 부분에 대해서는 HTTPS로 변환하여이 문제를 해결할 수있었습니다 (이것이 어쨌든해야만했던 것입니다).

6

,이 오류를 많이 볼 수 있습니다 :

나는 나의 페이지 기슭에이 코드가 있습니다.

은 참조 : 당신은 iframe이 코드를 통해 어떤 페이스 북 플러그인을 사용하는 경우, 추가로 https://developers.facebook.com/docs/javascript/quickstart

,의 src URL 프로토콜이 일치해야합니다.

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    // init the FB JS SDK 
    FB.init({ 
     appId  : 'YOUR_APP_ID',      // App ID from the app dashboard 
     channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel file for x-domain comms 
     status  : true,         // Check Facebook Login status 
     xfbml  : true         // Look for social plugins on the page 
    }); 

    // Additional initialization code such as adding Event Listeners goes here 
    }; 

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

페이스 북 로그인에 대한 팝업 창이 별도로 사용됩니다. 그게 플러그인으로 간주되는지 나는 모른다. SDK 코드에 포함 된 여러 iframe이 있다는 것을 알고 있습니다. 가치가있는 부분에 대해서는이 코드 (사용자 정의 된 관련 부품 포함)가 내 응용 프로그램의 바닥에 있습니다. – SapphireSun

+1

죄송합니다 사파이어, 귀하의 코드를 보지 않고 모든 것이 레이아웃되어 있습니다. 비동기 버전을 위해 JS SDK를 교환하라는 지시보다 훨씬 더 많은 도움을 드릴 수 없습니다. –

+1

맨 위의 질문에 내 페이지의 하단에있는 코드를 추가했습니다. – SapphireSun

1

내가이 문제를 봤는데 ...
내 솔루션 :

try{setTimeout(FB.XFBML.parse);}catch(e){} 
:
(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/pt_BR/all.js#xfbml=1&appId=IDDDD"; 
fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

는 아약스 콜백을 설정
이 ... 정적 페이지에 페이스 북의 전화를 이동

happy :)

j 검색어 예 :

3

내 개발 환경에서 동일한 문제가있었습니다. 해결 방법 (어느 쪽이 좋았는지 확실하지 않음) :

  1. 로그 아웃합니다.
  2. 브라우저에서 모든 쿠키를 삭제하십시오.
  3. FB에 의도 한 사용자로 로그인하십시오 (개발자 페이지가 아닌 사용자 앱 권한 페이지).
  4. FB 권한 페이지에서 앱 권한을 삭제하십시오.
  5. FB에서 로그 아웃합니다.
  6. 앱을 새로 고침하고 로그인하려고합니다.
내가 거기에 약간의 시간을 보냈다하지 않는 한 이러한 부두 질문에 대답하지 않았을, 그리고 그것의 저를 얻기 위해 마법 어떤 종류의 가치를 것

.

+0

실제로. 그건 내 문제 였어. 테스트하기 쉽습니다. 브라우저를 시크릿 모드 또는 비공개 모드로로드하십시오. 오류가 사라지면 쿠키/세션 문제를 나타내는 것으로 보입니다. – cyberwombat