public
Fork of mislav/contacts
Description: Ruby library for consuming Google, Yahoo!, Flickr and Windows Live contact APIs
Homepage:
Clone URL: git://github.com/aeden/contacts.git
name age message
file .gitignore Tue Jan 20 13:35:31 -0800 2009 gemified contacts [Anthony Amoyal]
file .gitmodules Thu Jan 08 21:03:45 -0800 2009 add mislav/fakeweb as submodule and compensate ... [mislav]
file MIT-LICENSE Sat Mar 15 17:09:16 -0700 2008 helper for AuthSub request [mislav]
file README.rdoc Tue Jan 20 13:44:47 -0800 2009 fixed the doc [Anthony Amoyal]
file Rakefile Wed Jul 01 05:33:33 -0700 2009 update gemspec version and a few fields [aeden]
file VERSION.yml Wed Jul 29 14:07:49 -0700 2009 added phone and address import to yahoo [latompa]
file contacts.gemspec Wed Jul 29 14:07:49 -0700 2009 added phone and address import to yahoo [latompa]
directory lib/ Wed Jul 29 14:07:49 -0700 2009 added phone and address import to yahoo [latompa]
directory spec/ Wed Jul 29 14:07:49 -0700 2009 added phone and address import to yahoo [latompa]
directory vendor/ Wed Feb 18 16:49:10 -0800 2009 Windows Live: Remove dependency on a recent Ope... [lfittl]
README.rdoc

Install

        gem install contacts --source http://gems.github.com

Basic usage instructions

Fetch users’ contact lists from your web application without asking them to provide their passwords.

First, register your application’s domain. Then make users follow this URL:

  Contacts::Google.authentication_url('http://mysite.com/invite')

They will authenticate on Google and it will send them back to the URL provided. Google will add a token GET parameter to the query part of the URL. Use that token in the next step:

  gmail = Contacts::Google.new('example@gmail.com', params[:token])
  contacts = gmail.contacts
  #-> [ ['Fitzgerald', 'fubar@gmail.com', 'fubar@example.com'],
        ['William Paginate', 'will.paginate@gmail.com'], ...
        ]

Read more in Contacts::Google. I plan to support more APIs (Microsoft Live, for starters); feel free to contribute.

Author: Mislav Marohnić (mislav.marohnic@gmail.com)

Documentation auto-generated from specifications

Contacts::Google.authentication_url

  • generates a URL for target with default parameters
  • should handle boolean parameters
  • skips parameters that have nil value
  • should be able to exchange one-time for session token

Contacts::Google

  • fetches contacts feed via HTTP GET
  • handles a normal response body
  • handles gzipped response
  • raises a FetchingError when something goes awry
  • parses the resulting feed into name/email pairs
  • parses a complex feed into name/email pairs
  • makes modification time available after parsing

Contacts::Google GET query parameter handling

  • abstracts ugly parameters behind nicer ones
  • should have implicit :descending with :order
  • should have default :limit of 200
  • should skip nil values in parameters