2011-05-02 3 views
0

Je suis en train de tirer vers le bas une liste de personnes contacts Google Mail dans MVC 3 en utilisant cette API: http://code.google.com/apis/contacts/ http://code.google.com/apis/contacts/docs/3.0/developers_guide_dotnet.html#RetrievingMVC 3 et Google Contacts API

je besoin d'aide où commencer quand sa mise en œuvre. J'ai lu la documentation à plusieurs reprises, mais ce n'est tout simplement pas logique pour moi.

Je veux dérouler tous les contacts et les afficher dans l'action Index de mon contrôleur de contacts.

Toute aide concernant cette grande question serait grandement appréciée.

Répondre

3

Commencez par obtenir un exemple de code à partir de ce qui précède (EDIT - voir ci-dessous) Puis créez un nouveau ViewModel avec les champs que vous voulez afficher. Créer une vue fortement typé pour cette ViewModel comme une liste de ContactsViewModel (ce que vous appelez) de telle sorte qu'au sommet de votre point de vue de son: @model IEnumerable<ContactsViewModel>

Créer une route pour pointer une URL à la méthode de votre contrôleur, puis en votre méthode demande simplement à partir de google, et remplit en utilisant une boucle, LINQ, (ou automapper, etc) votre ContactsViewModel, et retourne le modèle à la vue.

Si vous avez quelque chose de plus spécifique en plus de cela laissez-moi savoir et je vais aller plus loin

Il y a certains éléments mal nommés/formatés dans leur même code ironiquement:) bien sûr ajouter les références ci-dessous (contacts, client, extensions) du C: \ Program Files \ Google \ Google Data API SDK \ Redist dossier

 
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

le problème est d'obtenir un exemple de code travaille, je sais quoi faire quand je reçois un certain échantillon le code va. Je ne sais tout simplement pas comment tout rassembler. – dalehumphries

+1

ok - Je vais poster la étape par étape ici pour faire fonctionner l'api brièvement –

+0

Ok génial, j'ai ce code dans un fichier d'aide et tout semble bien. Maintenant, comment puis-je obtenir ces contacts dans ma base de données? – dalehumphries

Questions connexes