2011-03-03 3 views
0

이전의 4.x Facebook C# SDK에서 작동하는 간단한 Iframe 앱을 설정하지 않고 다른 방법을 사용했습니다. 일반 NET 4.0 웹 응용 프로그램을 사용하여 MVC를 사용하지 않습니다. 내 FB 애플 리케이션 구성에서 모든 새로운 방법 (예 : oAuth2)을 사용하도록 설정했지만 사용 중지 된 것으로 표시된 옵션은 사용 중지되었습니다.Auth 세션은 항상 null입니다.

Authorizer 세션은 내 페이지의 기록 된 사용자 팬과 함께 항상 null입니다.

Authorizer auth = new Authorizer(FacebookContext.Current.AppId, FacebookContext.Current.AppSecret, new HttpContextWrapper(Context)); 
auth.Perms = "user_about_me,user_birthday,user_location"; 

if (auth.Session != null && auth.Session.AccessToken != null) 
    fbApp = new FacebookClient(auth.Session.AccessToken);   

if(auth.IsAuthorized()) 
     //show the app 

아마도 나는 바보 같은 것을 놓치고 있지만, 제대로 작동하지 않을 수 있습니다. 내 쿠키, 뭔가 내 SDK 4.x web.config의 차이점에 관련된 것 같아요 cookieSupport = "false"는 facebookSettings에서 지원되지 않습니다 ... 미리 도와 주실 수있는 사람들에게 감사드립니다. :) Joe

답변

0

버전 5에서는 요청에 쿠키가있는 경우 쿠키가 사용되며, 그렇지 않으면 signed_request와 같은 다른 요청 매개 변수가 검색됩니다. 캔버스 앱과 함께 쿠키를 사용해서는 안되기 때문에 특정 브라우저에서 도메인 간 문제가 발생할 수 있습니다.

캔버스 용 POST를 사용하도록 설정했는지 확인하십시오.

인증자를 사용하는 대신 CanvasAuthorizer 클래스 (5.0.3) 또는 FacebookCanvasAuthorizer 클래스 (최신 소스)를 사용해보십시오. 그래서 같은

인스턴스화을 : 당신이 당신의 Web.config 섹션에서 가져온 것 같은 생성자로 APPID 또는 appSecret을 통과 할 필요가 없습니다

var auth = new CanvasAuthorizer { Perms = "user_about_me,user_birthday,user_location" }; 

.

+0

캔버스 용 POST가 활성화되어 있지만 작동하지 않으며 CanvasAuthorizer에서 제안한대로 작동하지 않습니다. 참고 : HttpContext를 살펴보면 Request.Form에 signed_request 매개 변수를 볼 수 있습니다. –

+0

라이브러리 심볼을로드하고 CanvasAuthorizer로 이동하여 디버깅하는 동안 FacebookWebUtils.GetSession에서 무슨 일이 일어나는지 보시겠습니까? –

+0

참고 : 심볼을 디버깅하려면 저장소에서 최신 소스 코드를 다운로드해야합니다. FacebookCanvasAuthorizer 클래스를 사용하려면 코드 스 니펫을 리팩터링해야했습니다. FacebookSession.GetSession에서 signedRequest.AccessToken은 null이고 sessionCookieValue도 null입니다. FacebookSession 클래스 생성자는 결코 해고되지 않으므로 signed_request 폼 매개 변수를 구문 분석 할 수 없습니다. –

관련 문제