Skip to content

Latest commit

 

History

History
57 lines (41 loc) · 1.97 KB

README.rdoc

File metadata and controls

57 lines (41 loc) · 1.97 KB

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(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ć ([email protected])

Installation

This fork of the contacts codebase is available as a gem, prefixed with ‘mislav’ to avoid conflicts with the original contacts gem. Do

gem install mislav_contacts

to install.

Dependencies

Please note that you will need to install the json gem if you are not using this gem as part of a Rails project.

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