ECToo / pygooglevoice

Automatically exported from code.google.com/p/pygooglevoice
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Google Voice login fails since Sep 13th 2011 #60

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Login with correct name & password

What is the expected output? What do you see instead?

I see 'Login failed. Retry?' instead of my command being executed.

What version of the product are you using? On what operating system?

pygooglevoice-0.5 on debian squeeze

Please provide any additional information below.

I have identified the problem and produced a patch. (attached)  The problem is 
that Google seems to be expecting its cookies to be returned.

Before I came to this conclusion, I also tried adding all hidden form inputs to 
the login request.  So my patch not only fixes the cookie issue, but also 
replaces the line commented "holy hackjob" with a more generic 4-line solution 
that gets values for all hidden form inputs.

I'm not sure if this project is still being maintained, but I thought that I 
would surely not be the only one affected by this issue.  Hopefully, users can 
still benefit from this patch, even if they have to apply it by hand.

Original issue reported on code.google.com by joey.parrish@gmail.com on 13 Sep 2011 at 8:41

Attachments:

GoogleCodeExporter commented 9 years ago
same kind of result here. 

sometime it works sometime it doesn't. 

Google finally try to block it?

Original comment by firexx...@gmail.com on 13 Sep 2011 at 11:33

GoogleCodeExporter commented 9 years ago
Here is the update for the call I made.

My system is trixbox 2.8.0.3

[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Login failed.
[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Login failed.
[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Logging out of voice...
[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Logging out of voice...
[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Login failed.
[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Login failed.
[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Login failed.
[trixbox1.localdomain ~]# bash -c 'HOME=~asterisk && gvoice --batch call 
8008888888'
Logging out of voice...
[trixbox1.localdomain ~]# 

Original comment by firexx...@gmail.com on 14 Sep 2011 at 12:59

GoogleCodeExporter commented 9 years ago
See this:

http://code.google.com/p/pygooglevoice/issues/detail?id=58

Original comment by ericmayc...@gmail.com on 14 Sep 2011 at 8:39

GoogleCodeExporter commented 9 years ago
@ comment 2, can you clarify something for me?  Are you saying you had the same 
problem as me, or that the problem persists even with the patch I attached?

Original comment by joey.parrish@gmail.com on 14 Sep 2011 at 12:44

GoogleCodeExporter commented 9 years ago
Hi Joey

My system is trixbox 2.8.0.3 and I have the same problem as you, gvoice failed 
to login. After I apply the patch from you, I still can't get gvoice working 
all the time. 80% call is failed from command line and call from asterisk 
failed 100%. I thought it maybe python version but after I upgrade from 2.4.3 
to 2.6. gvoice give me other error like this:
********************
[trixbox1.localdomain ~]# gvoice
Traceback (most recent call last):
  File "/usr/bin/gvoice", line 79, in <module>
    login()
  File "/usr/bin/gvoice", line 49, in login
    voice.login(options.email,options.passwd)
  File "/usr/lib/python2.6/site-packages/googlevoice/voice.py", line 79, in login
    loginPage = self.__do_page('login')
  File "/usr/lib/python2.6/site-packages/googlevoice/voice.py", line 214, in __do_page
    if log:
NameError: global name 'log' is not defined
[trixbox1.localdomain ~]# 
********************************

Original comment by firexx...@gmail.com on 14 Sep 2011 at 6:26

GoogleCodeExporter commented 9 years ago
Hi Joey,
I tried the patch too and still get the same error. 
    voice.login()
  File "/usr/local/lib/python2.5/site-packages/googlevoice/voice.py", line 83, in login
    raise LoginError

Original comment by amrith.r...@gmail.com on 15 Sep 2011 at 2:24

GoogleCodeExporter commented 9 years ago
Okay, then perhaps my fix isn't the right one.  Is this project being 
maintained at all?  Will anyone be able to commit an authoritative fix?

Original comment by joey.parrish@gmail.com on 15 Sep 2011 at 2:31

GoogleCodeExporter commented 9 years ago
Ditto for me too.  It's sometimes working and not.  I could dig into the code a 
bit (I'm dangerous with python) -- but is there a way that someone knows of to 
turn on logging for the authentication?  I'd love to see the stream of what is 
transacting

- Linux 2.6.35-30-generic-pae #56-Ubuntu i686 GNU/Linux
- Ubuntu 10.10 - the Maverick Meerkat 
- Python 2.6.6

Original comment by mister...@gmail.com on 15 Sep 2011 at 5:14

GoogleCodeExporter commented 9 years ago
This works.  Thanks!  I've had a project feature down for two days because of 
this.

Original comment by gnag...@gmail.com on 15 Sep 2011 at 7:32

GoogleCodeExporter commented 9 years ago
yep... I can cofirm a fix.  Here's the skinny (to save you having to read the 
other thread) -- assuming you are using Ubuntu

1. Make sure you have mercurial.
  sudo apt-get install mercurial
2. Clone the repo mentioned above
  hg clone https://code.google.com/r/bwpayne-pygooglevoice-auth-fix/ 
3. Run the setup
  cd bwpayne-pygooglevoice-auth-fix/
  sudo python setup.py install
4. Take note where setup.py found and compiled the settings file.  I'm using 
python2.6, so it looked like this:
  byte-compiling /usr/local/lib/python2.6/dist-packages/googlevoice/settings.py to settings.pyc
5. Edit the settings.py > LOGIN to point to a new URL (taking note of the path 
on your machine to find the file)
  sudo  [your-favorite-editor]  [path-on-your-machine]/googlevoice/settings.py

5a. Change the login as follows:
# (old) LOGIN = 
'https://www.google.com/accounts/ServiceLoginAuth?service=grandcentral'
LOGIN   = 
"https://accounts.google.com/ServiceLogin?service=grandcentral&passive=1209600&c
ontinue=https://www.google.com/voice&followup=https://www.google.com/voice<mpl=o
pen"

6. Save the file and you're golden

Original comment by mister...@gmail.com on 15 Sep 2011 at 7:59

GoogleCodeExporter commented 9 years ago
[trixbox1.localdomain tmp]# hg clone 
https://code.google.com/r/bwpayne-pygooglevoice-auth-fix/
destination directory: bwpayne-pygooglevoice-auth-fix
requesting all changes
adding changesets
adding manifests
adding file changes
added 56 changesets with 316 changes to 98 files
updating working directory
31 files updated, 0 files merged, 0 files removed, 0 files unresolved
[trixbox1.localdomain tmp]# ls
bwpayne-pygooglevoice-auth-fix  new  pygooglevoice-0.5  
pygooglevoice-0.5.tar.gz  vmware-root
[trixbox1.localdomain tmp]# cd bwpayne-pygooglevoice-auth-fix/
[trixbox1.localdomain bwpayne-pygooglevoice-auth-fix]# ls
bin  docs  examples  googlevoice  LICENSE.txt  README.rst  setup.py
[trixbox1.localdomain bwpayne-pygooglevoice-auth-fix]# python setup.py install
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/googlevoice
copying googlevoice/voice.py -> build/lib/googlevoice
copying googlevoice/settings.py -> build/lib/googlevoice
copying googlevoice/__init__.py -> build/lib/googlevoice
copying googlevoice/tests.py -> build/lib/googlevoice
copying googlevoice/util.py -> build/lib/googlevoice
copying googlevoice/conf.py -> build/lib/googlevoice
running build_scripts
creating build/scripts-2.4
copying and adjusting bin/gvoice -> build/scripts-2.4
copying and adjusting bin/asterisk-gvoice-setup -> build/scripts-2.4
copying and adjusting bin/gvi -> build/scripts-2.4
changing mode of build/scripts-2.4/gvoice from 644 to 755
changing mode of build/scripts-2.4/asterisk-gvoice-setup from 644 to 755
changing mode of build/scripts-2.4/gvi from 644 to 755
running install_lib
copying build/lib/googlevoice/voice.py -> 
/usr/lib/python2.4/site-packages/googlevoice
copying build/lib/googlevoice/settings.py -> 
/usr/lib/python2.4/site-packages/googlevoice
copying build/lib/googlevoice/__init__.py -> 
/usr/lib/python2.4/site-packages/googlevoice
copying build/lib/googlevoice/tests.py -> 
/usr/lib/python2.4/site-packages/googlevoice
copying build/lib/googlevoice/util.py -> 
/usr/lib/python2.4/site-packages/googlevoice
copying build/lib/googlevoice/conf.py -> 
/usr/lib/python2.4/site-packages/googlevoice
byte-compiling /usr/lib/python2.4/site-packages/googlevoice/voice.py to 
voice.pyc
byte-compiling /usr/lib/python2.4/site-packages/googlevoice/settings.py to 
settings.pyc
byte-compiling /usr/lib/python2.4/site-packages/googlevoice/__init__.py to 
__init__.pyc
byte-compiling /usr/lib/python2.4/site-packages/googlevoice/tests.py to 
tests.pyc
byte-compiling /usr/lib/python2.4/site-packages/googlevoice/util.py to util.pyc
byte-compiling /usr/lib/python2.4/site-packages/googlevoice/conf.py to conf.pyc
running install_scripts
copying build/scripts-2.4/asterisk-gvoice-setup -> /usr/bin
copying build/scripts-2.4/gvoice -> /usr/bin
copying build/scripts-2.4/gvi -> /usr/bin
changing mode of /usr/bin/asterisk-gvoice-setup to 755
changing mode of /usr/bin/gvoice to 755
changing mode of /usr/bin/gvi to 755
[trixbox1.localdomain bwpayne-pygooglevoice-auth-fix]#
[trixbox1.localdomain bwpayne-pygooglevoice-auth-fix]# cat 
/usr/lib/python2.4/site-packages/googlevoice/settings.py |grep LOGIN
LOGIN= 
"https://accounts.google.com/ServiceLogin?service=grandcentral&passive=1209600&c
ontinue=https://www.google.com/voice&followup=https://www.google.com/voice<mpl=o
pen"
#LOGIN = 'https://www.google.com/accounts/ClientLogin'
[trixbox1.localdomain bwpayne-pygooglevoice-auth-fix]# gvoice
Login failed. Retry?[Y/n] n
[trixbox1.localdomain bwpayne-pygooglevoice-auth-fix]# uname -na
Linux trixbox1.localdomain 2.6.18-128.1.10.el5 #1 SMP Thu May 7 10:39:21 EDT 
2009 i686 i686 i386 GNU/Linux
[trixbox1.localdomain bwpayne-pygooglevoice-auth-fix]# python
Python 2.4.3 (#1, Mar  5 2011, 21:25:56) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

OK. See my process, anything wrong with what I did? Still got failed... Damn 
Google.

Original comment by firexx...@gmail.com on 15 Sep 2011 at 8:39

GoogleCodeExporter commented 9 years ago
Comment #10 Did it for me.  I had a setup working for past 1.5 year+ without 
issues, and all I needed to do was step 5a.  Many thanks!

Original comment by tycattgv...@gmail.com on 16 Sep 2011 at 6:28

GoogleCodeExporter commented 9 years ago
firexx...@gmail.com, chances are that your version of settings.py is newer than 
t...@att.net's I don't think the change in the LOGIN variable will work.

The problem is that your version of Python is old.  I have the same version and 
I'm having problems too.  bwpayne didn't account for people that have this 
older version.

Did you install Trixbox CE from the ISO?

Original comment by christop...@gmail.com on 16 Sep 2011 at 12:58

GoogleCodeExporter commented 9 years ago
Yes, I do install the ce from iso. It was 2.8.0.3.  But I already tried new 
python 2.6. It give some other error and voice is not even run.
I will post another one under 2.6 later. 

Original comment by firexx...@gmail.com on 16 Sep 2011 at 1:03

GoogleCodeExporter commented 9 years ago
I think the code from the bwpayne update requires Python 3, but I haven't been 
able to verify it.  I'm hesitant to just go and install Python 3 on my box 
without knowing the outcome.

Maybe someone can come up with a fix for all of the people running Trixbox CE, 
because every single one of those installations is running Python 2.4.3.

Original comment by christop...@gmail.com on 16 Sep 2011 at 1:10

GoogleCodeExporter commented 9 years ago
I can try to load python3 and test it out tonight if I have time.

Original comment by firexx...@gmail.com on 16 Sep 2011 at 8:38

GoogleCodeExporter commented 9 years ago
A simple fix that works, is download source from 
http://pygooglevoice.googlecode.com/files/pygooglevoice-0.5.tar.gz and extract 
files.

Then modify /googlevoice/settings.py located in the setup folder; 
change LOGIN = 
'https://www.google.com/accounts/ServiceLoginAuth?service=grandcentral' to 
LOGIN = 'https://accounts.google.com/ServiceLogin?service=grandcentral'. 

After that, execute the setup script by running 'sudo python setup.py install'

Original comment by littlesh...@gmail.com on 18 Sep 2011 at 11:52

GoogleCodeExporter commented 9 years ago
You are da MAN!!  Updating the login address worked just fine.  

Original comment by iamnorml...@gmail.com on 20 Sep 2011 at 5:44

GoogleCodeExporter commented 9 years ago
I just wonder, Cookiejar is loaded in the original code, and the opener is 
installed as the default URL opener. Why Google complain about cookies?

Original comment by the...@gmail.com on 21 Sep 2011 at 1:56

GoogleCodeExporter commented 9 years ago
The post on Sept. 18th fixed it for me too!  Thanks !!

Original comment by Steven.B...@gmail.com on 27 Sep 2011 at 1:49

GoogleCodeExporter commented 9 years ago
Thank you people. The comment number 17 works great. Just edit one line of 
LOGIN URL, then do setup.py install again (let it override the existing 
gvoice), and everything is back ok again. Thank you Littlesh...@gmail.com for 
the wonderful & quick fix.

Regards,
Bao

Original comment by baonguye...@gmail.com on 3 Oct 2011 at 3:33

GoogleCodeExporter commented 9 years ago
Another approach. Same general technique:

-bash-3.2# locate googlevoice/settings.py
/usr/lib/python2.4/site-packages/googlevoice/settings.py
/usr/lib/python2.4/site-packages/googlevoice/settings.pyc

rm -f usr/lib/python2.4/site-packages/googlevoice/settings.pyc  

vi /usr/lib/python2.4/site-packages/googlevoice/settings.py

Change the LOGIN = line to access 
'https://accounts.google.com/ServiceLogin?service=grandcentral'

Original comment by sbroo...@mail.com on 17 Oct 2011 at 4:59

GoogleCodeExporter commented 9 years ago
#22 is the best option imo.  Confirmed it working for me with Python 2.6.6 on 
Ubuntu Maverick.

Original comment by xiong.ch...@gmail.com on 18 Nov 2011 at 11:13

GoogleCodeExporter commented 9 years ago
Comment 17 fixed me right up….  May be stating the obvious…  but it doesn't 
hurt to check your .gvoice file, either.  Make sure its correct, no quotes or 
any of the bull-malarkie..

Original comment by a...@mrgray.com on 28 Dec 2011 at 12:57

GoogleCodeExporter commented 9 years ago
None of the above worked for me. I tried the fixes that were mentioned and 
repulling the repository code but get same password related errors as above. 
Tried it with Python 3.2 and 2.7, both on windows machine. It seems a new 
revison would be in order with this problem fixed for both windows and linux 
platforms with versions of working pythons specified.

Original comment by jesmitt...@gmail.com on 16 Mar 2012 at 5:27

GoogleCodeExporter commented 9 years ago
None of the above worked for me. I tried the fixes that were mentioned and 
repulling the repository code but get same password related errors as above. 
Tried it with Python 3.2 and 2.7, both on windows machine. It seems a new 
revison would be in order with this problem fixed for both windows and linux 
platforms with versions of working pythons specified.

Original comment by jesmitt...@gmail.com on 16 Mar 2012 at 5:27

GoogleCodeExporter commented 9 years ago
Having the same issue in Debian with Python 2.7.2+. Changing LOGIN allows me to 
log in (something which I initially couldn’t do). Once logged in I am unable 
to do anything. I get the following message:

  File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Original comment by mangel12...@gmail.com on 30 Mar 2012 at 3:08

GoogleCodeExporter commented 9 years ago
Solved. I hadnt completed the sign up process. I hadnt registered a number yet 
(only sending/receiving smss through the chat function).

Once I completed the process I was ready to work. Now everything is working 
fine. Thank you all!

Original comment by mangel12...@gmail.com on 30 Mar 2012 at 3:28

GoogleCodeExporter commented 9 years ago
also having issues. Windows 7 python 2.6

Original comment by austinfa...@gmail.com on 17 Apr 2012 at 5:05

GoogleCodeExporter commented 9 years ago
Comment #17 fixed it for me. Any chance we can get that pushed to the tarball?

Original comment by will.mar...@gmail.com on 24 Apr 2012 at 5:37

GoogleCodeExporter commented 9 years ago
I second what will.mar says, would be great if we could get #17's fix pushed to 
tar. Any possibility of this occuring?

Original comment by asandwe...@gmail.com on 8 May 2012 at 1:16

GoogleCodeExporter commented 9 years ago
On OS 10.8, comment 10 worked for me, but it can be dumbed down quite a bit:

1. Make sure you have mercurial.
  Install the packages from here:  http://mercurial.berkwood.com/
2. Clone the repo mentioned above
  hg clone https://code.google.com/r/bwpayne-pygooglevoice-auth-fix/ 
3. Run the setup
  cd bwpayne-pygooglevoice-auth-fix/
  sudo python setup.py install

And that's pretty much it.  The default settings file installed by the fix, 
which are located in /Library/Python/2.7/site-packages/googlevoice/settings.py, 
worked out of box.

Nice to check out, though, if you didn't know it existed (I didn't...).  
There's a lot of stuff that you can put in there.

Original comment by d...@consolecowboysllc.com on 14 Dec 2012 at 1:52

GoogleCodeExporter commented 9 years ago
I can get the stupid thing to work i've pretty much all the fixes. i'm running 
ubuntu 12.10 pygame2.7 and getting this error

Traceback (most recent call last):
  File "./sms.py", line 5, in <module>
    voice.login()
  File "/usr/local/lib/python2.7/dist-packages/googlevoice/voice.py", line 71, in login
    respMap = dict( line.strip().split('=', 1) for line in response.readlines() )
ValueError: dictionary update sequence element #0 has length 1; 2 is required

I have no idea what to do!!!!

Original comment by derekho...@gmail.com on 14 Mar 2013 at 4:33

GoogleCodeExporter commented 9 years ago
Using Ubuntu and Python 2.7
Tried all of the suggestions above after failing logins to googlevoice.
Now I get this error:
Traceback (most recent call last):
  File "/usr/local/bin/gvoice", line 79, in <module>
    login()
  File "/usr/local/bin/gvoice", line 49, in login
    voice.login(options.email,options.passwd)
  File "/usr/local/lib/python2.7/dist-packages/googlevoice/voice.py", l
ine 71, in login
    respMap = dict( line.strip().split('=', 1) for line in response.rea
dlines() )
ValueError: dictionary update sequence element #0 has length 1; 2 is re
quired

Original comment by rtajeph...@gmail.com on 21 Mar 2013 at 7:18

GoogleCodeExporter commented 9 years ago
Using Ubuntu and Python 2.7
Getting the same error as #34
Traceback (most recent call last):
  File "/usr/local/bin/gvoice", line 79, in <module>
    login()
  File "/usr/local/bin/gvoice", line 49, in login
    voice.login(options.email,options.passwd)
  File "/usr/local/lib/python2.7/dist-packages/googlevoice/voice.py", line 71, in login
    respMap = dict( line.strip().split('=', 1) for line in response.readlines() )
ValueError: dictionary update sequence element #0 has length 1; 2 is required

Original comment by Juhani.K...@gmail.com on 23 Jul 2013 at 8:19

GoogleCodeExporter commented 9 years ago
I made a clone which currently works (at least for sending SMS messages):  
http://code.google.com/r/kkleidal-pygooglevoiceupdate/

Original comment by kklei...@gmail.com on 24 Nov 2013 at 2:49

GoogleCodeExporter commented 9 years ago
Is this still working? I tried all posted fix but it didn't work. It looks like 
the login URL is not working anymore..

Original comment by romelemp...@gmail.com on 1 Aug 2014 at 5:21

GoogleCodeExporter commented 9 years ago
Traceback (most recent call last):
  File "googlevoicetrialSK.py", line 5, in <module>
    voice.login()
  File "/Library/Python/2.7/site-packages/googlevoice/voice.py", line 70, in login
    galx = re.search(r"name=\"GALX\"\s+value=\"(.+)\"", content).group(1)
AttributeError: 'NoneType' object has no attribute 'group'

Original comment by PYSERVER...@gmail.com on 2 Jan 2015 at 8:42

GoogleCodeExporter commented 9 years ago
^ The regex is not matching anything. The web page has changed and this line 
doesn't work....

Original comment by restowne...@gmail.com on 23 Feb 2015 at 7:32