giovedì 7 ottobre 2010

[c# .net asp.net MVC2] Importare contatti gmail

In un'applicazione, potrebbe essere necessario importare i contatti di un account gmail.
La realizzazione è molto semplice e basata sulle Google Data Api, una raccolta di librerie che fornisce un semplice protocollo per leggere e scrivere i dati dal web.

Prima di tutto , scaricare le GoogleDataApi (che trovate qui),  installarle sul pc e aggiungerle come riferimento al proprio progetto ( in questo caso useremo Google.GData.Contacts.dll, Google.GData.Client.dll, Google.GData.Extensions.dll) .
Importare i vari namespace


using Google.GData.Contacts;
using Google.GData.Client;
using Google.GData.Extensions;

Ora si è pronti per l'implementazione del codice per leggere i contatti gmail.

string authSubUrl = AuthSubUtil.getRequestUrl("http://www.example.com/Hello.asp", "http://www.google.com/m8/feeds/", False, True);

GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("cp", "exampleCo-exampleApp-1");
authFactory.Token = (String)Session["token"];
ContactsService service = new ContactsService("exampleCo-exampleApp-1");
  service.setUserCredentials(email, password);
ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default"));
ContactsFeed feed = service.Query(query);




a questo punto all'interno del feed.Entries ci sono i contatti.
per estrapolarli basta un semplice ciclo di lettura per scorrere tutti i contatti, ad esempio:

foreach (ContactEntry item in feed.Entries)

{

      // in item.Name abbiamo i vari "nomi" del contatto, per esempio :
      //item.Name.FullName
      //item.Name.FamilyName
      //item.Name.GivenName
      //item.Name.NamePrefix
      //item.Name.NameSuffix
      //item.Name.AdditonalName
     // mentre all'interno di item.Emails abbiamo tutti gli indirizzi associati al contatto con le varie proprietà, 
//quindi anche qui basta un semplice ciclo di lettura per estrapolare tutti i dati:

             foreach (EMail email in entry.Emails)

                {
                    // in email.Address si ottiene l'indirizzo email
                    //in email.Home, email.Work, email.Other si trova un valore bool che
                    //indica se questo indirizzo è 
                    //classificato come Home, Work o Other
                 }
}

naturalmente questo è solo un esempio di utilizzo di queste api per la semplice estrapolazione dei contatti da un account Gmail, le funzioni messe a disposizione sono molteplici e si può fare molto altro.

Nessun commento:

Posta un commento

Related Posts Plugin for WordPress, Blogger...