0

페이스 북 (PHP SDK)을 통해 사용자가 로그인하는 응용 프로그램을 개발했습니다. 지금 JS SDK와 함께 작동하는 일반 친구 선택기 (http://facebook-friend-selector.codersgrave.com/)를 구현하려는 경우 JS SDK도 추가하고 싶습니다. 다음과 같은 두 가지 질문이 있습니다.페이스 북으로 PHP SDK를 통해 로그인 한 다음 JS SDK를 사용합니다.

1) 두 SDK를 혼합하면 문제가 발생할 수 있습니까?

2) I는 문서 설명과 간단한 요청

FB.api('/me/friends', function(response) { 
    alert(JSON.stringify(response)); 
}); 

시도하지만 에러 (미지의 오차)를 얻을 같이 JS SDK 코드를 첨가; 나는 또한 대화 상자를 시도했다

FB.ui({ 
    method: 'feed', 
    link: 'https://developers.facebook.com/docs/dialogs/', 
    caption: 'An example caption', 
}, function(response){}); 

그러나 박스가 나타나 갑자기 사라진다. 문제는 인증과 관련이 있다고 생각합니다 ... 내 사용자가 PHP를 통해 인증되었으므로 JS에 액세스 토큰을 전달해야하지만 어떻게 될까요? 이 질문은 Passing the Facebook Authorization Token from PHP to Javascript 정확히 내가 원하는 것 같다 그러나 나는 대답을 이해하지 않는다 : 그것은 쿠키에 토큰을 저장하는 말,하지만 어떻게 JS는 그것에 대해 쿠키가 있어야 이름을 알 수 있습니까? 내가

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    alert('connected'); 
    var uid = response.authResponse.userID; 
    var accessToken = response.authResponse.accessToken; 
    } 
}); 

내가 실제로 "연결"경고를 얻을 뭔가를 할 경우 마지막으로, 그 JS 사용자가 로그인이 PHP를 통해 경우에도, 로그인 한 것을 알고, 그래서 어디에 문제가 있음을 의미?

+0

하하하 위대한 생각은 비슷합니까? http://stackoverflow.com/questions/20785993/given-url-is-not-permitted-by-app-setting-with-js-sdk-but-not-with-loginurl-fr. 페이지 (Firebug, Chrome 기본 콘솔, IE 기본 콘솔)를로드하기 전에 일부 자바 스크립트 콘솔을 열고 도메인 문제에 대한 로그 메시지가 표시되는지 확인하십시오. 네가 보는 것을 말해봐. P.S 아직도 나는 우리 상황이 얼마나 유사한 지 믿을 수 없다. – Letterman

+0

예, 정확히 같은 상황 :)하지만 제 경우에는 오류가 없습니다! ajax에 대한 응답을 기록하려고 시도하면 https://www.facebook.com/dialog/feed와 https://graph.facebook.com/me/friends가 모두 0ms에서 실행됩니다 (firefox에 따라) 대답이 없다. – Eugenio

+0

죄송합니다. 귀하의 경우와 같은 특정 오류가 발생하지 않았 음을 의미합니다. 디버그 경고에 "알 수없는 오류"라는 오류 메시지가 표시됩니다. – Eugenio

답변

0

해결되었습니다. 내 코드는이 바보 같은 실수를 포함,이 올바른 코드 : 친구 메소드 호출이 getLoginStatus 방법를 벗어난 첫 번째 버전에서

function test(){ 
    FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
      var uid = response.authResponse.userID; 
      var accessToken = response.authResponse.accessToken; 

      FB.api('/me/friends', function(response) { 
       alert(JSON.stringify(response)); 
      }); 
     } 
    }); 
} 

<a href="" onclick="test();return false;">Test</a> 

, 그래서는, 또한, I 피난처 변수 accesToken를 설정하기 전에 불렀다 test() 호출 후에 "return false"문을 사용하지 마십시오.

관련 문제