1

Facebook의 승인을 요청하려면 어떻게해야하나요?Chrome에서 publish_stream 권한을 요청하는 방법

크롬 블록 팝업을 위로하고 그래서 그 대신

function askPermission() { 
    FB.login(function(response) { 
     if(response.authResponse) { 
      // Do what I want to do 
     } 
    }, {scope:'publish_stream'}); 
} 

FB.login

를 사용하여 경고를 많이 던졌습니다, 나는 How to set permission dialog for post message on wall에서이 시도 :

function askPermission(appid, redirect_uri, response_type, scope, callback) { 
    // Redirect the user back after authorization 
    var path = 'https://www.facebook.com/dialog/oauth?'; 
    var queryParams = ['client_id='+appid, 'redirect_uri='+encodeURI(redirect_uri), 'response_type='+response_type, 'scope='+scope]; 
    var query = queryParams.join('&'); 
    var url = path + query; 
    top.location.href = url; 
} 

그러나 그것은 작동하지 않았다 잘.

"YourApp에 오류가 발생했습니다. 나중에 다시 시도하십시오."라는 오류 메시지가 나타납니다.

편집 : 크롬은 아직 내가 시도도 'URL과 프레임에 액세스 할 수있는 안전하지 않은 자바 스크립트 시도'를 많이 throwed :

<input type="button" value="Convidar amigos" class="verde" onclick="FB.login(function(response){ if(response.authResponse){post();} }, {scope:'email,publish_stream'});"/> 

답변

0

당신은 사용자 상호 작용에 FB.login를 호출해야을 (등, 제출 클릭) 또는 대부분의 브라우저에서 차단됩니다. JS-SDK가 차단 된 창과 상호 작용할 수 없기 때문에 표시되는 오류가 있습니다.

+0

리디렉션 방식을 사용하지 않는 이유를 발견했습니다. 우 리는 절대적이어야합니다. 매개 변수 redirect_uri에 전달한 uri 값에 http : //를 추가하지 않았습니다. function askPermission (appid, redirect_uri, response_type, scope, callback) 오류 설명을 수신하지 못했습니다. 테스트에 사용했던 사용자가 앱 개발자가 아니기 때문입니다. 어리석은 실수. – iw123w