WWW::Live::Contacts - A Microsoft Live Contacts client
1.0.1
Provides access to the Microsoft Live Contacts web services API.
# Construct a client object my $client = WWW::Live::Contacts->new( consent_token => $token, # See WWW::Live::Auth %lwp_params # Constructor parameters for LWP::UserAgent ); # Set the proxy (if necessary) $client->proxy( 'http', 'http://proxy.mycompany.com' ); # Retrieve contacts for my $contact ( $client->get_contacts()->entries() ) { print $contact->full_name(); } # Add contacts my $contact = WWW::Live::Contacts::Contact->new(); $contact->first( 'Andrew' ); $contact->last ( 'Jenkinson' ); $client->write_contacts( $contact ); # Update contacts $contact->work_email()->address( 'foo@bar.com' ); $contact->add_address( $address ); $contact->home_phone()->mark_deleted(); $client->write_contacts( $contact ); # Delete contacts $client->delete_contacts( $contact->id ); # OR $contact->mark_deleted(); $client->write_contacts( $contact );
Constructs a new client object representing the address book of a single user. Requires a consent token, and optionally accepts LWP::UserAgent parameters. my $client = WWW::Live::Contacts->new( consent_token => $token, %lwp_params );
Passes proxy settings through to LWP::UserAgent. Note the proxy must accept HTTPS connections. $client->proxy( 'http://proxy.mycompany.com' );
Gets the full set of contacts. my $collection = $client->get_contacts( filter => 'LiveContacts(Contact(ID))', # fields to populate modified_since => $date # string or unix time ); if ( $collection->is_modified ) { # ... do something with the contacts } Contacts are populated with data according to a given filter. If the filter is not specified, the API default is used. If some data has changed since the 'modified_since' parameter, or no such parameter is specified, all contacts are returned. Otherwise no contacts are returned. This behaviour makes it possible to deduce if deletes have taken place. This method returns a WWW::Live::Contacts::Collection object holding the contacts and the last modified date of the collection.
Gets a single contact by its ID, with all available data. my $contact = $client->get_contact( $contact_ID );
Inserts/updates/deletes the given contacts, according to their states. $client->write_contacts( $new_contact, $updated_contact ); Each contact is processed in full, including all its children (emails etc).
Inserts/updates/deletes the given email addresses, according to their states. $client->write_emails( $contact_ID, @emails );
Inserts/updates/deletes the given phone numbers, according to their states. $client->write_phones( $contact_ID, @phones );
Inserts/updates/deletes the given addresses, according to their states. $client->write_addresses( $contact_ID, @addresses );
Deletes one or more contacts. $client->delete_contacts( @contact_IDs );
Deletes one or more email addresses. $client->delete_emails( $contact_ID, @email_IDs );
Deletes one or more phone numbers. $client->delete_phones( $contact_ID, @phone_IDs );
Deletes one or more addresses. $client->delete_addresses( $contact_ID, @address_IDs );
Andrew M. Jenkinson <jenkinson@cpan.org>
Copyright 2008-2011 Andrew M. Jenkinson.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
The Windows Live Contacts API does not support inserting or updating multiple "collection" entities in the same request. A collection entity is a data type of which there can be more than one (e.g. contacts, emails, phones, addresses). As a result, calls to the write_* methods are performed using several requests and thus are NOT atomic. A delete of a single contact is an atomic action, however.
WWW::Live::Auth LWP::UserAgent HTTP::Date Carp
WWW::Live::Auth
LWP::UserAgent
To install WWW::Live::Contacts, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::Live::Contacts
CPAN shell
perl -MCPAN -e shell install WWW::Live::Contacts
For more information on module installation, please visit the detailed CPAN module installation guide.