Skip to content

Latest commit

 

History

History
44 lines (29 loc) · 1.68 KB

README.mdown

File metadata and controls

44 lines (29 loc) · 1.68 KB

Google ClientLogin

This is a ruby library developed to support the google ClientLogin api. licensed under the MIT-license.

Usage

There is only one class, ClientLogin. Here is for example how you would create a ClientLogin for the google calendar service.

login = GoogleLogin::ClientLogin.new :service => :cl, 
                                     :source => 'companyName-applicationName-versionID'
                                     :accountType => 'GOOGLE'

These are the only 3 paramaters that can be given. :accountType defaults to 'HOSTED_OR_GOOGLE'.

So now you can authenticate a user for the service.

login.authenticate 'willemstoon@gmail.com', password

when this didn't raise any error, login has succeeded. You can find the values of AUTH, SID and LSID via the auth, sid and lsid methods. Quite logical indeed.

Now sometimes it can happen that google wants you to fill in a captcha. when this happens the authenticate method will raise an error (CaptchaRequired). The url to the captcha is accesible via the captcha_url method. for example:

login.captcha_url
=> http://www.google.com/accounts/Captcha?ctoken=HiteT4b0Bk5Xg18_AcVoP6-yFkHPibe7O9EqxeiI7lUSN

Once the user has looked and told you the captcha you can login using:

login.authenticate 'willemstoon@gmail.com', password, captcha_response

There is a nice convenient block construct: if you give a block to the authenticate method, that block will be called with the captcha url. The return value from the block should be the captcha answer. And it will try re-authenticate automatically.

(c) Copyright 2010 Toon Willems.