Class: Contacts19::Gmail
Constant Summary collapse
- CONTACTS_SCOPE =
'http://www.google.com/m8/feeds/'
- CONTACTS_FEED =
CONTACTS_SCOPE + 'contacts/default/full/?max-results=1000'
Instance Method Summary collapse
Methods inherited from Base
#connect, #connected?, #initialize, #login, #password, #skip_gzip?
Constructor Details
This class inherits a constructor from Contacts19::Base
Instance Method Details
#contacts ⇒ Object
9 10 11 |
# File 'lib/contacts19/gmail.rb', line 9 def contacts return @contacts if @contacts end |
#real_connect ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/contacts19/gmail.rb', line 13 def real_connect @client = GData::Client::Contacts.new @client.clientlogin(@login, @password, @captcha_token, @captcha_response) feed = @client.get(CONTACTS_FEED).to_xml @contacts = feed.elements.to_a('entry').collect do |entry| title, email, photo = entry.elements['title'].text, nil, [nil, nil] begin entry.elements.each('link[@gd:etag]') do |e| gdata_response = @client.get(e.attribute('href').value) photo = [gdata_response.body, gdata_response.headers['content-type']] if gdata_response.status_code == 200 and !gdata_response.body.nil? end rescue StandardError photo = [nil, nil] end entry.elements.each('gd:email') do |e| email = e.attribute('address').value if e.attribute('primary') end [title, email, photo] unless email.nil? end @contacts.compact! rescue GData::Client::AuthorizationError => e raise AuthenticationError, "Username or password are incorrect" end |