3

사용자 인증에 Facebook C# SDK를 사용하고 있습니다. 하지만 FB.ui JS 메서드를 클라이언트에서도 사용하고 싶습니다. Facebook JS SDK의 C# SDK에서 이미받은 access_token을 "재사용"할 수있는 방법이 있습니까? 이미 서버 측에서 사용자를 인증했기 때문에 FB.Login을 호출하고 싶지 않습니다.Facebook JS SDK 서버에서 Access_Token 재사용

+0

왜 [FB.getLoginStatus()'] (http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/)를 사용하지 않으시겠습니까? 적어도 이것은 사용자가 API 호출을 할 때 * 여전히 * 로그인되어 있는지를 보장합니다. – ifaour

+0

답장을 보내 주셔서 감사합니다. FB.getLoginStatus()는 FB.login을 호출하지 않았기 때문에 항상 auth 응답을 반환하지 않습니다. 내 문제는 다르다 - 나는 OAuth를 사용하여 "on server"사용자를 성공적으로 기록했으며 클라이언트의 일부 양식 필드에 올릴 수있는 유효한 액세스 토큰을 가지고있다. 필요한 것은 FB.login으로 다시 로그인 할 필요없이 FB.ui API 호출을하는 것입니다. FB.login으로 다시 로그인하지 않으면 FB.ui API가 작동하지만 페이지에 포함 된 멋진 Facebook 팝업 대신 표준 팝업에 대화 상자가 표시됩니다. FB.login을 호출하면 몇 가지 로그인 리디렉션/팝업으로 사용자를 귀찮게 할 것입니다. – Edgar

+0

이 옵션은 하나의 SDK를 사용하여 로그인하고 다른 사용자의 정보에 액세스 할 수있는 최신 js-sdk 및 php sdk 3.1.1에서 수행되었습니다. 또한 Facebook에는 C# SDK의 공식 버전이 없습니다. 그래서 PHP SDK에서 어떻게 최신 변경 사항을 수행했는지 알았으므로 기본 페이스 북 클래스를 다시 작성할 수 있습니다! – Vijay

답변

0

숨겨진 필드에 access_token 문자열을 넣고 javascript를 통해 값을 가져 와서 JS API 메소드에 전달하십시오.

+0

실제 질문은 JS API 메소드에 전달하는 방법입니다. – Henrik

+0

숨겨진 필드의 값을 가져 와서 로컬 자바 스크립트 변수에 저장합니다. – alaasdk

+0

불행히도 UI 대화 상자 (apprequests)를 사용해야하는 API 호출에 전달할 수 없다는 것을 알았습니다. – Henrik

0
FB.getLoginStatus(function(response) { 
    if (response.authResponse) { 
     fbUserId = response.authResponse.userID; 
     token = response.authResponse.accessToken; 

    } else { 
     fbUserId = 0; 
    } 
    }); 

you will get access token