NAME WWW::Google::Contacts - Google Contacts Data API VERSION version 0.05 SYNOPSIS use WWW::Google::Contacts; my $gcontacts = WWW::Google::Contacts->new(); $gcontacts->login('fayland@gmail.com', 'pass') or die 'login failed'; # create contact my $status = $gcontacts->create_contact( { givenName => 'FayTestG', familyName => 'FayTestF', fullName => 'Fayland Lam', Notes => 'just a note', primaryMail => 'primary@example.com', displayName => 'FayTest Dis', secondaryMail => 'secndary@test.com', # optional } ); print "Create OK" if $status; my @contacts = $gcontacts->get_contacts; foreach my $contact (@contacts) { my @emails = map { $_->{address} } @{ $contact->{email} }; print "$contact->{name}->{'gd:fullName'}: " . join(', ', @emails) . "\n"; $gcontacts->delete_contact($contact->{id}) if $contact->{name}->{'gd:givenName'} eq 'Test'; } DESCRIPTION This module implements 'Google Contacts Data API' according METHODS * new/login my $gcontacts = WWW::Google::Contacts->new(); $gcontacts->login('fayland@gmail.com', 'pass') or die 'login failed'; * create_contact $gcontacts->create_contact( { givenName => 'FayTestG', familyName => 'FayTestF', fullName => 'Fayland Lam', Notes => 'just a note', primaryMail => 'primary@example.com', displayName => 'FayTest Dis', secondaryMail => 'secndary@test.com', # optional } ); return 1 if created * get_contacts my @contacts = $gcontacts->get_contacts; my @contacts = $gcontacts->get_contacts( { group => 'thin', # default to 'full' } ) my @contacts = $gcontacts->get_contacts( { updated-min => '2007-03-16T00:00:00', start-index => 10, max-results => 99, # default as 9999 } ); get contacts from this account. "group" refers "start-index", "max_results" etc refer * get_contact($id) my $contact = $gcontacts->get_contact('http://www.google.com/m8/feeds/contacts/account%40gmail.com/base/1'); get a contact by id * update_contact my $status = $gcontacts->update_contact('http://www.google.com/m8/feeds/contacts/account%40gmail.com/base/123623e48cb4e70a', { givenName => 'FayTestG2', familyName => 'FayTestF2', fullName => 'Fayland Lam2', Notes => 'just a note2', primaryMail => 'primary@example2.com', displayName => 'FayTest2 Dis', secondaryMail => 'secndary@test62.com', # optional } ); update a contact * delete_contact($id) my $status = $gcontacts->delete_contact('http://www.google.com/m8/feeds/contacts/account%40gmail.com/base/1'); The id is from "get_contacts". * create_group my $status = $gcontacts->create_group( { title => 'Test Group' } ); Create a new group * get_groups my @groups = $gcontacts->get_groups; my @groups = $gcontacts->get_groups( { updated-min => '2007-03-16T00:00:00', start-index => 10, max-results => 99, # default as 9999 } ); Get all groups. * get_group($id) my $group = $gcontacts->get_group('http://www.google.com/m8/feeds/groups/account%40gmail.com/base/6e744e7d0a4b398c'); get a group by id * update_group($id, { title => $title }) my $status = $gcontacts->update_group( 'http://www.google.com/m8/feeds/groups/account%40gmail.com/base/6e744e7d0a4b398c', { title => 'New Test Group 66' } ); Update a group * delete_group my $status = $gcontacts->delete_contact('http://www.google.com/m8/feeds/groups/account%40gmail.com/base/6e744e7d0a4b398c'); ACKNOWLEDGE John Clyde - who share me with his code about Contacts API AUTHOR Fayland Lam COPYRIGHT AND LICENSE This software is copyright (c) 2010 by Fayland Lam. This is free software; you can redistribute it and/or modify it under the same terms as perl itself.