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(params[:token]) gmail.contacts # => [#<Contact 1>, #<Contact 2>, ...]
The resulting Contacts::Contact objects have ‘name` and `email` properties.
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)
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