2011-02-17 6 views
0

Facebook C# SDK를 사용하여 vb.net에서 Facebook 웹 애플리케이션을 구축하려고합니다. 이 SDK는 vb.net에서 사용할 수 있습니다. 그러나 페이지로드시 내 앱에 로그인하려고합니다. 로그인 할 수 있지만 내 앱은 로그인 한 것을 인식하지 못하고 멈출 때까지 로그인을 반복합니다. 여기 내 코드가있다.Facebook-C# -SDK "로그인 중"

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim faceauth As New FacebookClient 
    Dim fbsession As New FacebookSession 
    If faceauth.AccessToken.Length = 0 Then 
     Dim appId As String = ConfigurationManager.AppSettings("facebookappid") 
     Dim extendedPermissions As String() = {"publish_stream", "offline_access", "read_stream", "manage_pages"} 
     Dim oauth = New FacebookOAuthClient() With { _ 
     .ClientId = appId _ 
     } 
     fbsession.Expires = Now.AddDays(1) 
     Dim parameters = New Dictionary(Of String, Object)() From { _ 
     {"response_type", "code_and_token"}, _ 
     {"display", "popup"}, _ 
     {"redirect_uri", "http://newsocialspin.spintest.com/fbcsb.aspx"} _ 
     } 
     If extendedPermissions IsNot Nothing AndAlso extendedPermissions.Length > 0 Then 
      Dim scope = New StringBuilder() 
      scope.Append(String.Join(",", extendedPermissions)) 
      parameters("scope") = scope.ToString() 
     End If 
     Dim loginUrl = oauth.GetLoginUrl(parameters) 
     Response.Redirect(loginUrl.ToString) 
    Else 
     LoggedIn() 
    End If 
End Sub 

로그인 상태를 인식하지 못하게하려면 수많은 방법을 시도했습니다. 도움이 될만한 아이디어가 있으면 알려주십시오. 또는 개발자가 내 명백한 오류를 수정하십시오. 감사.

답변

3

리디렉션 된 것을 포함하여 모든 페이지로드시 새로운 FacebookClient가 생성됩니다. 따라서 faceauth.AccessToken.Length에 대한 점검은 항상 true입니다. 리디렉션에서 살아남을 수있는 쿠키 또는 세션 값이 필요하며 Facebook을 통해 로그인 할 때 적절하게 업데이트됩니다.

0

나를 도왔던 this discussion을보세요. 기본적으로 SDK의 최신 버전을 실행하고 Facebook 패키지가 서명 된 요청을 활용할 수 있도록 제대로 구성되어 있는지 확인해야합니다 (물론 제공해야합니다).

관련 문제