1WWW::Google::Contacts(3U)ser Contributed Perl DocumentatiWoWnW::Google::Contacts(3)
2
3
4
6 WWW::Google::Contacts - Google Contacts Data API
7
9 This module is currently not working. Some time back, Google obsoleted
10 the authentication method used by this module.
11
12 Patches for updating how authentication is handled are more than
13 welcome!
14
16 use WWW::Google::Contacts;
17
18 my $google = WWW::Google::Contacts->new(
19 username => "your.username",
20 password => "your.password",
21 protocol => "https",
22 );
23
24 # Create a new contact
25 my $contact = $google->new_contact;
26 $contact->full_name("Emmett Brown");
27 $contact->name_prefix("Dr");
28 $contact->email('doctor@timetravel.org');
29 $contact->hobby("Time travel");
30 $contact->jot([ "Went back in time", "Went forward in time", "Became blacksmith" ]),
31 $contact->create; # save it to the server
32
33 # Now search for the given name, and read the jots
34 my @contacts = $google->contacts->search({ given_name => "Emmett" });
35 foreach my $c ( @contacts ) {
36 print "Got the following jots about the good doctor\n";
37 foreach my $jot ( @{ $c->jot } ) {
38 print "Jot: " . $jot->value . "\n";
39 }
40 print "And now he goes back to the future\n";
41 $c->delete;
42 }
43
44 # Print the names of all groups
45 my $groups = $google->groups;
46 while ( my $group = $groups->next ) {
47 print "Title = " . $group->title . "\n";
48 }
49
50 # Add the contact to existing group 'Movie stars' and to a new group 'Back to the future'
51 my $new_group = $google->new_group({ title => "Back to the future" });
52 $new_group->create; # create on server
53
54 my @groups = $google->groups->search({ title => "Movie stars" });
55 my $movie_stars_group = shift @groups;
56
57 $contact->add_group_membership( $new_group );
58 $contact->add_group_membership( $movie_stars_group );
59 $contact->update;
60
62 This module implements 'Google Contacts Data API' according
63 <http://code.google.com/apis/contacts/docs/3.0/developers_guide_protocol.html>
64
65 NOTE This new interface is still quite untested. Please report any
66 bugs.
67
69 new( username => .., password => .. , protocol => ..)
70 username and password are required arguments and must be valid Google
71 credentials. If you do not have a Google account you can create one at
72 <https://www.google.com/accounts/NewAccount>.
73
74 protocol defaults to http, but can optionally be set to https.
75
77 $google->new_contact
78 Returns a new empty WWW::Google::Contacts::Contact object.
79
80 $google->contact( $id )
81 Given a valid contact ID, returns a WWW::Google::Contacts::Contact
82 object populated with contact data from Google.
83
84 $google->contacts
85 Returns a WWW::Google::Contacts::ContactList object which can be used
86 to iterate over all your contacts.
87
88 $google->new_group
89 Returns a new WWW::Google::Contacts::Group object.
90
91 $google->group( $id )
92 Given a valid group ID, returns a WWW::Google::Contacts::Group object
93 populated with group data from Google.
94
95 $google->groups
96 Returns a WWW::Google::Contacts::GroupList object which can be used to
97 iterate over all your groups.
98
100 The old module interface is still available, but its use is
101 discouraged. It will eventually be removed from the module.
102
103 • new/login
104
105 my $gcontacts = WWW::Google::Contacts->new();
106 $gcontacts->login('fayland@gmail.com', 'pass') or die 'login failed';
107
108 • create_contact
109
110 $gcontacts->create_contact( {
111 givenName => 'FayTestG',
112 familyName => 'FayTestF',
113 fullName => 'Fayland Lam',
114 Notes => 'just a note',
115 primaryMail => 'primary@example.com',
116 displayName => 'FayTest Dis',
117 secondaryMail => 'secndary@test.com', # optional
118 } );
119
120 return 1 if created
121
122 • get_contacts
123
124 my @contacts = $gcontacts->get_contacts;
125 my @contacts = $gcontacts->get_contacts( {
126 group => 'thin', # default to 'full'
127 } )
128 my @contacts = $gcontacts->get_contacts( {
129 updated-min => '2007-03-16T00:00:00',
130 start-index => 10,
131 max-results => 99, # default as 9999
132 } );
133
134 get contacts from this account.
135
136 "group" refers
137 <http://code.google.com/apis/contacts/docs/2.0/reference.html#Projections>
138
139 "start-index", "max_results" etc refer
140 <http://code.google.com/apis/contacts/docs/2.0/reference.html#Parameters>
141
142 • get_contact($id)
143
144 my $contact = $gcontacts->get_contact('http://www.google.com/m8/feeds/contacts/account%40gmail.com/base/1');
145
146 get a contact by id
147
148 • update_contact
149
150 my $status = $gcontacts->update_contact('http://www.google.com/m8/feeds/contacts/account%40gmail.com/base/123623e48cb4e70a', {
151 givenName => 'FayTestG2',
152 familyName => 'FayTestF2',
153 fullName => 'Fayland Lam2',
154 Notes => 'just a note2',
155 primaryMail => 'primary@example2.com',
156 displayName => 'FayTest2 Dis',
157 secondaryMail => 'secndary@test62.com', # optional
158 } );
159
160 update a contact
161
162 • delete_contact($id)
163
164 my $status = $gcontacts->delete_contact('http://www.google.com/m8/feeds/contacts/account%40gmail.com/base/1');
165
166 The id is from "get_contacts".
167
168 • create_group
169
170 my $status = $gcontacts->create_group( { title => 'Test Group' } );
171
172 Create a new group
173
174 • get_groups
175
176 my @groups = $gcontacts->get_groups;
177 my @groups = $gcontacts->get_groups( {
178 updated-min => '2007-03-16T00:00:00',
179 start-index => 10,
180 max-results => 99, # default as 9999
181 } );
182
183 Get all groups.
184
185 • get_group($id)
186
187 my $group = $gcontacts->get_group('http://www.google.com/m8/feeds/groups/account%40gmail.com/base/6e744e7d0a4b398c');
188
189 get a group by id
190
191 • update_group($id, { title => $title })
192
193 my $status = $gcontacts->update_group( 'http://www.google.com/m8/feeds/groups/account%40gmail.com/base/6e744e7d0a4b398c', { title => 'New Test Group 66' } );
194
195 Update a group
196
197 • delete_group
198
199 my $status = $gcontacts->delete_contact('http://www.google.com/m8/feeds/groups/account%40gmail.com/base/6e744e7d0a4b398c');
200
202 WWW::Google::Contacts::Contact
203
204 WWW::Google::Contacts::ContactList
205
206 WWW::Google::Contacts::Group
207
208 WWW::Google::Contacts::GroupList
209
210 <http://code.google.com/apis/contacts/docs/3.0/developers_guide_protocol.html>
211
213 Fayland Lam - who wrote the first version of this module
214
215 John Clyde - who shared his code about Contacts API with Fayland
216
218 More POD
219 Unit tests. Very lame right now
220 Images
221 Fix bugs :)
222
224 Magnus Erixzon <magnus@erixzon.com>
225
227 This software is copyright (c) 2010 by Magnus Erixzon.
228
229 This is free software; you can redistribute it and/or modify it under
230 the same terms as perl itself.
231
232
233
234perl v5.36.0 2023-01-20 WWW::Google::Contacts(3)