Páginas

domingo, janeiro 17, 2010

Google Contacts API

Pessoal,

As minhas tentativas de usar a API de contatos do Google através da linguagem FLEX foram até o momento infrutíferas devido a problemas de leitura do arquivo CrossDomain.XML do Google. O flex, por algum motivo que desconheço resolve em algum momentos não ler o arquivo da url: http://www.google.com/crossdomain.xml e sim da url https://www.google.com/crossdomain.xml, url esta que não tem este arquivo.

Resolvi então testar a API .NET do Google Contacts. O Endereço onde você deve baixar as DLLs é na página do projeto em: http://code.google.com/p/google-gdata/

Segue abaixo o código do teste em vb.NET, sendo que para quem não tem o Visual Studio pode usar o SharpDevelop.

'
' Criado por SharpDevelop.
' Usuário: dms
' Data: 17/1/2010
' Hora: 11:51
'

Imports System
Imports System.Collections.Generic
Imports Google.GData.Client
Imports Google.GData.Contacts
Imports Google.GData.Extensions
Imports System.Data

Public Partial Class MainForm
    Public Sub New()
        ' The Me.InitializeComponent call is required for Windows Forms designer support.
        Me.InitializeComponent()
       
        '
        ' TODO : Add constructor code after InitializeComponents
        '
    End Sub
   
    Sub Button1Click(sender As Object, e As EventArgs)
        debug.Print ("teste")
        Dim GContactService = New ContactsService("Contact Information")
        GContactService.setUserCredentials("Coloque aqui o seu e-mail","e aqui a sua senha")
        debug.Print (GContactService.ToString)
        debug.Print (GContactService.Credentials.ClientToken)
        debug.Print (GContactService.Credentials.GetHashCode)
        debug.Print (GContactService.ServiceIdentifier)
       

       
       
        Dim query = new ContactsQuery(ContactsQuery.CreateContactsUri("default"))
       
        debug.Print (query.Uri.ToString)

        Dim feed As ContactsFeed
        feed=GContactService.Query(query)
       
        debug.Print (feed.Feed)
       
        dim x=0
        For Each entry As ContactEntry In feed.Entries
            debug.Print ("id            : " & x & " : ")
            debug.Print ("Nome          : " & entry.Title.Text)
            debug.Print ("# de e-mails  : " & entry.Emails.Count )
            debug.Print ("# de telefones: " & entry.Phonenumbers.Count)
            debug.Print ("URI de foto   : " & entry.PhotoUri.ToString)
            debug.Print ("Content       : " & entry.Content.ToString)
            debug.Print ("PhotoETag     : " & entry.PhotoEtag)
        Next
    End Sub
End Class