From: Mike Telis on
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)?
--
Posted via http://www.ruby-forum.com/.

From: Jason Watson on
On 2010-08-03 18:26:16 +0100, Mike Telis said:

> 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)?


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



From: Mike Telis on
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?
--
Posted via http://www.ruby-forum.com/.

From: Jason Watson on
[Note: parts of this message were removed to make it a legal post.]

On 2010-08-03 20:16:04 +0100, Mike Telis 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.

From: Mike Telis on
> 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.
--
Posted via http://www.ruby-forum.com/.

 |  Next  |  Last
Pages: 1 2
Prev: Different between 2 code
Next: Inject problem