2011-05-02 3 views
0

나는이 API를 사용하여 MVC 3에서 사람의 Gmail 연락처 목록을 아래로 끌어 노력하고있어. 나는 여러 번 문서를 읽었지만, 나에게 의미가 없다.MVC 3 및 ​​구글 연락처 API

연락처를 모두 내리고 주소록 컨트롤러의 색인 작업에 표시하려고합니다.

이 광범위한 질문에 대한 도움을 주시면 감사하겠습니다.

답변

3

먼저 위에서 작업 한 샘플 코드를 얻으십시오 (편집 - 실제로 아래 참조). 표시 할 필드가있는 새 ViewModel을 작성하십시오. 다음에, @model IEnumerable<ContactsViewModel>

이 컨트롤러의 방법에 URL을 가리 키도록 경로를 만듭니다 (당신이 그것을 호출 무엇이든) ContactsViewModel의 목록으로보기의 상단에 해당하도록이 뷰 모델에 대한 강력한 형식의 뷰 만들기 귀하의 방법은 단순히 Google에서 쿼리 및 루프, LINQ, (또는 자동 검색 등) ContactsViewModel을 사용하여 채우고보기로 모델을 반환합니다.

당신은 더 깊은

들은 동일한 코드의 일부 잘못 이름/형식의 항목은 아이러니하게도이 있습니다 나를 알고 내가 갈거야하자 그 위에 더 구체적인 뭔가가있는 경우 :) 물론 아래의 참조를 추가 (는 C에서 연락처, 클라이언트, 확장) : \ 프로그램 파일 \ 구글 \ Google 데이터 API SDK \ 재배포 폴더

 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Google.GData.Contacts; 
using Google.GData.Client; 
using Google.GData.Extensions; 
using Google.Contacts; 


namespace GoogleTests 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      RequestSettings rs = new RequestSettings("myApplication", "[email protected]", "yourpwd"); 
      // AutoPaging results in automatic paging in order to retrieve all contacts 

      rs.AutoPaging = true; 
      ContactsRequest cr = new ContactsRequest(rs); 

      Feed<Contact> f = cr.GetContacts(); 
      foreach (Contact entry in f.Entries) 
      { 
       if (entry.Name != null) 
       { 
        Name name = entry.Name; 
        if (!string.IsNullOrEmpty(name.FullName)) 
         Console.WriteLine("\t\t" + name.FullName); 
        else 
         Console.WriteLine("\t\t (no full name found)"); 
        if (!string.IsNullOrEmpty(name.NamePrefix)) 
         Console.WriteLine("\t\t" + name.NamePrefix); 
        else 
         Console.WriteLine("\t\t (no name prefix found)"); 
        if (!string.IsNullOrEmpty(name.GivenName)) 
        { 
         string givenNameToDisplay = name.GivenName; 
         if (!string.IsNullOrEmpty(name.GivenNamePhonetics)) 
          givenNameToDisplay += " (" + name.GivenNamePhonetics + ")"; 
         Console.WriteLine("\t\t" + givenNameToDisplay); 
        } 
        else 
         Console.WriteLine("\t\t (no given name found)"); 
        if (!string.IsNullOrEmpty(name.AdditonalName)) 
        { 
         string additionalNameToDisplay = name.AdditonalName; 
         if (string.IsNullOrEmpty(name.AdditionalNamePhonetics)) 
          additionalNameToDisplay += " (" + name.AdditionalNamePhonetics 
         + ")"; 
         Console.WriteLine("\t\t" + additionalNameToDisplay); 
        } 
        else 
         Console.WriteLine("\t\t (no additional name found)"); 
        if (!string.IsNullOrEmpty(name.FamilyName)) 
        { 
         string familyNameToDisplay = name.FamilyName; 
         if (!string.IsNullOrEmpty(name.FamilyNamePhonetics)) 
          familyNameToDisplay += " (" + name.FamilyNamePhonetics + ")"; 
         Console.WriteLine("\t\t" + familyNameToDisplay); 
        } 
        else 
         Console.WriteLine("\t\t (no family name found)"); 
        if (!string.IsNullOrEmpty(name.NameSuffix)) 
         Console.WriteLine("\t\t" + name.NameSuffix); 
        else 
         Console.WriteLine("\t\t (no name suffix found)"); 
       } 
       else 
        Console.WriteLine("\t (no name found)"); 

       foreach (EMail email in entry.Emails) 
       { 
        Console.WriteLine("\t" + email.Address); 
       } 
      } 
     } 
    } 
} 
+0

이 문제는 몇 가지 예제 코드가 작동지고, 나는 내가 몇 가지 샘플을 얻을 때 무엇을 해야할지 코드가. 나는 그것을 함께 모을 방법을 모른다. – dalehumphries

+1

ok - 간단히 API를 실행하기 위해 여기 단계별로 게시 할 것입니다. –

+0

Ok, 필자는 도우미 파일에 코드를 작성했는데 모두 괜찮아 보입니다. 이제 이러한 연락처를 내 데이터베이스에 어떻게 가져 옵니까? – dalehumphries