2011-09-29 2 views
0

사용자에게 facebook javascript SDK를 사용하여 내 앱에 'publish_stream'권한을 부여하도록 요청하고 싶습니다.Fb.ui() 팝업이 작동하지만 대화 상자가 영원히로드됩니다.

FB.init({ 
    appId : '203702512703', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true, // parse XFBML 
    channelURL : 'http://mydomain.com/channel.php', // channel.html file 
    oauth : true // enable OAuth 2.0 
}); 

을 그리고 내 FB.ui 호출은 다음과 같습니다 :

나는 이런 식으로 초기화

FB.ui({ 
    client_id: '203702512703', 
    method: 'oauth', 
    scope: 'publish_stream', 
    redirect_uri: 'http://mydomain.com/', 
    response_type: 'token', 
    display: 'dialog' 
    }); 

내가 '팝업'에서 '대화'를 변경하는 경우가 완벽하게 작동합니다. 하지만 '대화'를 지정하거나 옵션을 그대로두면 fb-div가 표시되지만 로딩 애니메이션 (예 : http://p.iqs.me/t1c4j)이 표시되고 내용이로드되지 않습니다.

내가 뭘 잘못하고 있니?

업데이트 : 디스플레이로 "iframe이"를 사용하는 방법에 대한 다음 말한다이 페이지 http://developers.facebook.com/docs/reference/dialogs/#display 발견 : 을 "때문에 클릭 재킹의 위험이 만 유효한 access_token이 통과하는 일부 특정 대화 상자 허용, 당신을 필요로한다 "

"대화 "에 대한 생각은하지 않지만 iframe과 대화 상자 모두 동일한 나쁜 결과를 가져옵니다.

어떻게하면 access_token을 전달할 수 있습니까?

+0

[버그] (http://bugs.developers.facebook.net/show_bug.cgi?id=18942)와 유사한 문제입니까? – ifaour

+0

조금 비슷한 것 같습니다. 하지만 이것이 버그 일 경우 수천 개의 앱이 문제가 될 것이라고 생각합니다. 내가 여기 뭔가 잘못하고있는 것 같아. – Martin

답변

1

'popup'은 보안 (클릭 재발 및 피싱)으로 인해 javascript SDK의 경우 'oauth'또는 FB.login의 경우 필수 항목입니다. 어쨌든 FB.login을 사용하여 권한을 얻거나 인증하는 것이 더 편리 할 것이므로 제안 할 것입니다. 당신은 탭이나 캔버스에있어 여부에 따라 FB.login에 iframe :

희망이 당신이 디스플레이를 사용할 수있는 방법의 차이도있다

+0

오케이. 감사합니다 :) 이것은 잘 설명되어 있지 않습니다. – Martin

+0

@ 마틴 : 동의합니다. –

0

을하는 데 도움이됩니다. 탭에서는 access_token이 필요없고 캔버스에서 작업 할 수 있습니다.

캔버스에서 차단 된 팝업 또는 사용자가 시작한 자신의 담벼락에 간단한 게시물처럼 기본적인 권한을 제공하지 않기를 거부 한 사용자가 많습니다. IMVHO FB는이 순간을 바로 잡을 필요가 있지만 몇 달 동안 버그를 기록했으며 변경 사항이 나타나지 않았습니다.