Prev: Different between 2 code
Next: Inject problem
From: Mike Telis on 3 Aug 2010 13:26 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 3 Aug 2010 14:31 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 3 Aug 2010 15:16 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 3 Aug 2010 16:06 [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 3 Aug 2010 16:21
> 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/. |