2011-12-17 8 views
2

나는 아래 코드가 Prabir's Blog (codeplex documentation)이고 fb.get() 메서드가 존재하지 않는다 ... 나는 fb 로그인 페이지로 가야하는 인증까지 모든 방법을 테스트 할 수 있었다. 나는 fb를 시도하고있다. 얻으십시오 ("/ 나"); 나는 이것에 초보자이고 가이드를 따를뿐입니다 ...fb.Get()이 존재하지 않습니다?

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    string appId = "xxx"; 
    string[] extendedPermissions = new[] { "publish_stream", "offline_access" }; 

    var oauth = new FacebookOAuthClient { AppId = appId}; 

    var parameters = new Dictionary<string, object> 
    { 
     { "response_type", "token" }, 
     { "display", "popup" } 
    }; 

    if (extendedPermissions != null && extendedPermissions.Length > 0) 
    { 
     var scope = new StringBuilder(); 
     scope.Append(string.Join(",", extendedPermissions)); 
     parameters["scope"] = scope.ToString(); 
    } 

    var loginUrl = oauth.GetLoginUrl(parameters); 

    webBrowser.Navigating += webBrowser_Navigated; 
    webBrowser.Navigate(loginUrl); 
} 

private void webBrowser_Navigated(object sender, NavigatingEventArgs e) 
{ 
    FacebookOAuthResult result=null; 

    if (FacebookOAuthResult.TryParse(e.Uri, out result)) 
    { 
     if (result.IsSuccess) 
     { 
      var accesstoken = result.AccessToken; 
      var fb = new FacebookClient(accesstoken); 

      var results = (IDictionary<string, object>)fb.Get("/me"); 
      var name = (string)results["name"]; 

      MessageBox.Show("Hi " + name); 
     } 
     else 
     { 
      var errorDescription = result.ErrorDescription; 
      var errorReason = result.ErrorReason; 
     } 
    } 
} 
+0

@Lion가 고정 ...이 나를 위해 작동하지 않습니다 – jharr100

답변

3

대신 fb.GetAsync를 사용하십시오. Window Phone 7은 동기 방식을 지원하지 않습니다.

소스 코드를 다운로드하고 "Samples \ CS-WP7.sln"예제를 체크 아웃 할 것을 적극 권장합니다.

var fb = new FacebookClient(_accessToken); 

fb.GetCompleted += (o, args) => 
         { 
          if (args.Error == null) 
          { 
           var me = (IDictionary<string, object>)args.GetResultData(); 

           Dispatcher.BeginInvoke(
            () => 
            { 
             FirstName.Text = "First Name: " + me["first_name"]; 
             LastName.Text = "Last Name: " + me["last_name"]; 
            }); 
          } 
          else 
          { 
           Dispatcher.BeginInvoke(() => MessageBox.Show(args.Error.Message)); 
          } 
         }; 

fb.GetAsync("me"); 
+0

, 당신은'FirstName.Text'와'LastName.Text'이 무엇인지에 대해 구체적 수 있습니까? – Michael

+0

이름 및 성은 텍스트 상자입니다. – prabir

관련 문제