2011-10-03 2 views
2

데스크톱 응용 프로그램에서 Google 연락처에 액세스하려면 oauth를 사용하고 있습니다. 내가 여기에 구글의 지시를 따랐다 :데스크톱 응용 프로그램에서 google oauthutill을 사용하여 연락처 검색

OAuthParameters parameters = new OAuthParameters() 
             { 
              ConsumerKey = CONSUMER_KEY, 
              ConsumerSecret = CONSUMER_SECRET, 
              Scope = SCOPE, 
              Callback = "http://localhost:10101/callback.htm.txt", 
              SignatureMethod = "HMAC-SHA1" 
             }; 
     OAuthUtil.GetUnauthorizedRequestToken(parameters); 
     string authorizationUrl = OAuthUtil.CreateUserAuthorizationUrl(parameters); 
     Console.WriteLine(authorizationUrl); 
     var win = new GoogleAuthenticationWindow(authorizationUrl,parameters); 
     win.ShowDialog(); 
     OAuthUtil.GetAccessToken(parameters); 

나는 다음이 창 내부 :

private void BrowserNavigated(object sender, NavigationEventArgs e) 
    { 
     if (e.Uri.ToString().Contains("oauth_verifier=")) 
     { 
      OAuthUtil.UpdateOAuthParametersFromCallback(e.Uri.ToString(), m_parameters); 
      Close(); 
     } 
    } 

마지막 줄을 http://code.google.com/intl/iw-IL/apis/gdata/docs/auth/oauth.html#Examples 그러나 나는이 문제를 여기

를 데 코드입니다 (OAuthUtil.GetAccessToken (parameters);) 400 잘못된 요청 오류가 발생하고 이유가 없습니다.

답변

0

많이 놀아서 ... 나는 이것이 액세스 구글 API에 쉬운 방법 :

Service service = new ContactsService("My Contacts Application"); 
     service.setUserCredentials("[email protected]", "password"); 
     var token = service.QueryClientLoginToken(); 
     service.SetAuthenticationToken(token); 
     var query = new ContactsQuery(@"https://www.google.com/m8/feeds/contacts/[email protected]/full?max-results=25000"); 
     var feed = (ContactsFeed)service.Query(query); 
     Console.WriteLine(feed.Entries.Count); 
     foreach (ContactEntry entry in feed.Entries) 
     { 
      Console.WriteLine(entry.Title.Text); 
     } 

의 OAuth를 사용하는 것보다 훨씬 쉽게 ...

관련 문제