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;
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);
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