2009-05-01 6 views
9

내 Facebook Connect (간단한 로그인 버튼, fb : login-button)가 Firefox 및 IE에서 완벽하게 작동합니다.Safari/Chrome에 Facebook Connect 버튼이 표시되지 않습니다.

하지만 동일한 버튼이 Safari/Chrome (Webkit)에 표시되지 않습니다.

다음은 아이러니합니다. 디버깅을 위해 정적 페이지로 페이지 (fb : login-button 포함)를 저장 한 다음 Safari에서로드했습니다. 버튼이 나타나면 모든 것이 작동합니다!

내 PHP에서 렌더링 한 똑같은 페이지 (정확히 동일한 HTML 소스 포함)는 버튼을 표시 할 수 없습니다.

여기 웹킷을 지원하기 위해 열심히 노력하고 있습니다. 그러나 저는 포기할 것 같습니다. 아무도 도와 줄 수 있니?

+0

소스 코드를 게시 할 수 있습니까? 아니면 더 좋은 방법으로 라이브 예제 링크를 게시 할 수 있습니까? –

+0

물론입니다. 동적 페이지 - http://dev.hailer.my/main/fbconnect 정적 페이지 - http://dev.hailer.my/test_fb.html 동일한 코드 렌더링 두 페이지; 정적 페이지 만 Webkit에서 작동합니다. –

+0

동일한 문제가 있습니다. "메인"폴더에 넣어도 테스트 페이지가 계속 작동합니까? – cole

답변

1

ClickToFlash가 설치되어있을 수 있습니다. 비활성화하거나 ClickToFlash 설정에서 "보이지 않는 플래시보기 자동로드"를 선택하십시오.

0

config/facebooker.yml의 callback_url에 잘못된 도메인이있을 때 이런 일이 발생했습니다. 분명히 그 js 파일을로드하는 데 사용합니다.

0

동일한 문제가 있었지만 내 앱 설정의 URL이 내 사이트의 URL과 정확히 동일하도록 (즉, www가없는 내 사이트에 액세스했을 때 작동하지 않음) 문제를 해결했습니다.

1

우리가 발견 무슨 사파리 (그리고 아마도 크롬 또는 다른 웹킷 브라우저의 일부 이전 버전) 페이지가 XHTML 응답 헤더 (응용 프로그램과 함께 도착하면 innerHTML을 JS 함수를 사용하여 페이스 북의 코드에 문제가/xhtml + xml). 텍스트/html을 사용하면 문제가 해결됩니다.

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:fb="http://www.facebook.com/2008/fbml" 
    xmlns:f="http://java.sun.com/jsf/core"> 

... 

    <f:view contentType="text/html"> 
     <fb:login-button>Login using Facebook</fb:login-button> 
    </f:view> 
여기

페이스 북 버그 리포트 :
http://bugs.developers.facebook.net/show_bug.cgi?id=5545

4

내가 찾은 우리가 사용하는 JSF2,의 경우

는 구현 수정이 같은 FB 버튼을 배치 한 간단했다 이것이 발생할 수있는 한 가지 더 많은 방법 (멍청한 자신을위한 멍청한 방법); 아마도 일반적인 것은 아니지만 다른 사람이 번거 로움을 덜어 준다면 여기에 있습니다.

이 증상은 페이 스북 리소스를 차단하는 다양한 보안 도구로 인해 발생할 수 있습니다.

필자의 경우, 필자는 이전에 페이스 북의 Disconnect를 플러그인으로 설치했고, 설치하는 것을 잊어 버렸다. 또한 겉으로보기에는 똑같은 크롬의 두 번째 설치가 있었지만 (Facebook Disconnect는 없었습니다). 첫 번째는 fb : login-button을 제대로로드하고, 다른 하나는로드하지 않습니다. Facebook 플러그인이 아이콘이 없기 때문에 플러그인을 살펴보기 전에 나이가 들었다. 그래서 그 존재를 놓치기가 꽤 쉬웠다.

보안 플러그인이 페이스 북 리소스를로드하지 못하게하는 경우에 표시됩니다. 개발자 도구를 사용하여 브라우저에서 렌더링하는 html을 살펴보십시오.일반 크롬 세션에서

이 같은 것을하게 될 겁니다 :

<fb:login-button><a class="fb_button fb_button_medium"><span class="fb_button_text">Your text here</span></a></fb:login-button>

그러나 비활성화 페이스 북의 자원과 버전이 될 겁니다 :

<fb:login-button>Your text here</fb:login-button>

내가 말했듯이, 회상에서는 꽤 분명합니다.

+0

+1 Disconnect Extension을 언급합니다. 그것을 파악하기 위해 잠시 나갔다 :-) –

1

나는 페이스 북 버튼이 전혀 보이지 않는이 문제를 겪었고, 그것이 무엇인지 알아내는 데 영원히 걸렸다. 운 좋게도 머리카락을 당기는 날에 나는 이제 모든 사람들과 대답을 나눌 것입니다. 제 상황에서는 xfbml을 활성화하지 않았을뿐입니다. 내 FB.init에서 나는 false로 설정했다 :

FB.init({ 
     appId  : 'app_id', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : false, // parse XFBML 
     oauth  : true // enable OAuth 2.0 
    }); 

나는 "사실"(xfbml)이 변화하고 로그인 버튼은 이제 잘 작동합니다! : P 행운을 빌어 요!

3

동일한 문제가 있었지만 플러그인이나 조작 된 콘텐츠와 관련이 없습니다. 같은 버튼에 문제가있는 페이 스북 페이지에서 국가 필터링을 사용하도록 설정 한 경우 이는 매우 분명합니다. Facebook은 귀하의 IP 주소가 아닌 귀하의 프로필에서 귀하의 위치를 ​​얻습니다.

소셜 플러그인을 사용하려는 경우 국가 잠금을 해제하십시오.

0

여기 모든 제안 된 솔루션을 시도했지만 나에게 적합하지 않았습니다. 그러나 이제는 마침내 해결책을 찾았습니다.

페이스 북은 이제 Canvas (보안 Canvas URL)에 보안 (https)이 필요합니다. 보안되지 않은 버전은 곧 지원 중단 될 예정입니다.

가장 큰 차이점은 Chrome이 잘못된 인증을 사용하는 https 연결을 좋아하지 않는다는 점입니다. localhost에서는 stunnel을 설치하여 localhost에 https 연결을 허용 할 가능성이 높습니다. Firefox는 자체 작성한 SSL 인증서로 정상이며 해당 사이트에 액세스하려고 할 때 예외를 추가 할 수 있습니다. Chrome은 즉시 사용 가능하도록 허용하지 않습니다.

enter image description here

나는 빈 페이지 인 내가 모든 로그인 버튼이 표시 해달라고 크롬에서 내 응용 프로그램을로드

.

클릭 F12와 크롬의 Netwrok 탭을 클릭

enter image description here

당신은 로컬 호스트의 POST 요청이 취소 된 것을 알 수있다. DOUBLE 클릭하십시오.

enter image description here

클릭 진행에 어쨌든 :

지금 당신은 크롬 때문에 인증서의 로컬 호스트를 차단하고 볼 것입니다.

이제 다른 탭으로 백업하고 페이지를 다시로드합니다 :

enter image description here

크롬은 파이어 폭스처럼 지금 작동하고 로그인 버튼을 보여줍니다. enter image description here

관련 문제