2012-01-28 3 views
1

매우 간단한 질문입니다. 저는이 문제에 익숙하지 않고 문제를 이해할 수 없으므로 사용자 이름을 가져 와서 레이블에 표시하려고합니다.이 코드를 사용하여 액세스 권한을 얻으려고합니다. 토큰이 조건을 입력하지 않습니다 : (browser_navigated)의 이벤트가 입력되었지만 조건이 아니라면 누군가가 문제를 알고 있습니까?Facebook 사용자 이름 WPF

private void webBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) 
{ 
     FacebookOAuthResult result; 

     if (FacebookOAuthResult.TryParse(e.Uri, out result)) 
     {  
      if (result.IsSuccess) 
      { 
       var accesstoken = result.AccessToken; 
      } 
      else 
      { 
       var errorDescription = result.ErrorDescription; 
       var errorReason = result.ErrorReason; 
      } 
     } 
+0

webBrowser.Navigate()를 호출 한 부분을 표시 할 수 있습니까? 탐색하는 URL은 매우 중요합니다. –

답변

2

wpf 브라우저 컨트롤에 #을 (를) 모두 무시하는 성가신 버그가 있습니다. (이것은 wpf 기반의 웹 브라우저 컨트롤을 위해서만 제공되므로 실버 라이트 및 wp7 웹 브라우저 컨트롤에도 있습니다.)

Facebook은 URL 조각의 일부로 액세스 토큰을 반환합니다. 때문에 버그

https://url.com#access_token=.... 

, 매개 변수로 e.Uri을 통과 할 때 일부 #access_token=.. 따라서 FB C#을 SDK는 유효한 OAuth는 콜백 URL이 아닙니다 따라서 TryParse 항상 false를 반환 생각하지 않습니다.

솔루션 : 은 로그인에 대한 윈폼 브라우저 컨트롤을 사용하거나 code token 같은 response_type를 설정 한 다음 액세스 토큰 코드를 교환 어느.

관련 문제