HTTPClient can't login to Google Voice

I’m trying to login to Google Voice using the following code:

require ‘httpclient’

Google_Login = ‘googlename’
Google_Password = ‘password’

PRE_LOGIN_URL = “https://www.google.com/accounts/ServiceLogin
LOGIN_URL = “https://www.google.com/accounts/ServiceLoginAuth
VOICE_HOME_URL = “https://www.google.com/voice

clnt = HTTPClient.new(:agent_name => “Mozilla/5.0 (Macintosh; U; Intel
Mac OS X 10.5; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2”)
#clnt.debug_dev = STDERR

resp = clnt.get PRE_LOGIN_URL

clnt.cookie_manager.cookies.each {|x| @galx=x.value if x.name == ‘GALX’}

fetch GALX

resp = clnt.post_content LOGIN_URL,
:service => ‘grandcentral’,
:continue => ‘https://www.google.com/voice’,
:Email => Google_Login,
:Passwd => Google_Password,
:GALX => @galx

and post_content ends up redirecting to non-https URL (which is
definitely wrong). BTW, I believe that post_content should change method
to :get on redirect.

Any ideas what might be wrong with the code (or library)?

On 2010-08-03 18:26:16 +0100, Mike T. said:

VOICE_HOME_URL = “https://www.google.com/voice
resp = clnt.post_content LOGIN_URL,
Any ideas what might be wrong with the code (or library)?
I could log in to Google with this:

require ‘net/https’

def auth user_email, passwd, account_type, service
http = Net::HTTP.new(“www.google.com”, 443)
http.use_ssl = true

path = “/accounts/ClientLogin”
data =
“accountType=#{account_type}&Email=#{user_email}&Passwd=#{passwd}&service=#{service}”

headers = {‘Content-Type’ => ‘application/x-www-form-urlencoded’}

resp, data = http.post(path, data, headers)

puts resp.code
puts resp.body

cl_string = data[/Auth=(.*)/,1]
headers[“Authorization”] = “GoogleLogin auth=#{cl_string}”

end

auth “email”, “pass”, “GOOGLE”, “grandcentral”

jbw

Jason W. wrote:

I could log in to Google with this:

Guess it was long time ago, before Google added that GALX thing…

http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE # added this line

I tried this code and it didn’t work:

403
Error=BadAuthentication

Any other ideas?

I’ve not used httpclient before or google’s API much so I don’t know
about GALX. I’ve used HTTParty for this sort of stuff though.

Thanks for the tip! I’ve tried net/http, RestClient and HTTPClient and
all failed in a similar manner. I think I’m doing something wrong and
I’d rather find out what it is than try yet another library.

On 2010-08-03 21:21:48 +0100, Mike T. said:

I’ve not used httpclient before or google’s API much so I don’t know
about GALX. I’ve used HTTParty for this sort of stuff though.

Thanks for the tip! I’ve tried net/http, RestClient and HTTPClient and
all failed in a similar manner. I think I’m doing something wrong and
I’d rather find out what it is than try yet another library.

I don’t think the API for this is even released offically? But there is
lots of documented examples on Google’s website for other API services,
maybe they’ll help.

On 2010-08-03 20:16:04 +0100, Mike T. said:

Jason W. wrote:

I could log in to Google with this:

Guess it was long time ago, before Google added that GALX thing…

http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE # added this line

I tried this code and it didn’t work:

What does the code look like now? Added that line to mine and ir still
works.

403
Error=BadAuthentication

Any other ideas?

I’ve not used httpclient before or google’s API much so I don’t know
about GALX. I’ve used HTTParty for this sort of stuff though.

On Tue, Aug 3, 2010 at 1:26 PM, Mike T. [email protected] wrote:

             :Passwd   => Google_Password,
             :GALX     => @galx

http://everydayscripting.blogspot.com/2009/10/python-fixes-to-google-login-script.html

login_params = urllib.urlencode( {
‘Email’ : email,
‘Passwd’ : password,
‘continue’ : ‘https://www.google.com/voice/account/signin’,
‘GALX’: galx_value
})

Slightly different parameters?

and post_content ends up redirecting to non-https URL (which is
definitely wrong). BTW, I believe that post_content should change method
to :get on redirect.

I noticed that this redirect only happened when a valid username and
password was entered. I hacked my copy of httpclient to not raise the
exception so I could take a look at what was being returned:

“If you’ve been redirected to this page from the sign-in box, we’ve
detected an error with your cookie settings. Please follow the
instructions for your browser listed below. After clearing your cache
and cookies, try signing in again.”

Bump. Anyone?

unknown wrote:

On Tue, Aug 3, 2010 at 1:26 PM, Mike T. [email protected] wrote:

� � � � � � � � �:Passwd � => Google_Password,
� � � � � � � � �:GALX � � => @galx

http://everydayscripting.blogspot.com/2009/10/python-fixes-to-google-login-script.html

login_params = urllib.urlencode( {
‘Email’ : email,
‘Passwd’ : password,
‘continue’ : ‘https://www.google.com/voice/account/signin’,
‘GALX’: galx_value
})

Slightly different parameters?

Unfortunately, this doesn’t work :frowning: I changed parameters as you
suggested and got the same result. I’ve checked email and password many
times, they are correct.

I’m redirected to:

http://www.google.com/support/accounts/bin/answer.py?answer=32050&hl=en&ctx=ch_CheckCookie"

and the CheckCookie part hints that HTTPClient is doing something wrong
with the cookies.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs