1

I have a Perl program that has been running for a couple of years now. It uses the Google::Voice module (0.06) to handle incoming and outgoing text messages.

The computer was rebooted recently, and suddenly this module returns null instead of logging in. There have been no software changes on the machine, just a reboot.

I can still log into the Google Voice account on the same computer using the web browser, so it has to be the script that is at fault.

I have several questions:

  • Is anyone else experiencing this?

  • Is anyone aware of any changes to Google Voice that would break this?

  • Is anyone already on this and do they have a fix?

  • Is there any way to enable diagnostics so maybe I can figure it out myself?

Borodin
  • 126,100
  • 9
  • 70
  • 144
  • 1
    Maybe check your script for use of environment variables (or other non-persistent data)? Also, attempt simplest possible login to GV using the module. If that doesn't work, edit it into your question as a [mcve] – Neil Slater Jul 22 '16 at 20:31
  • The sample app with the module will no longer work - it's only two lines of code - new'ing an object, then calling login method. – Mike Lempriere Jul 26 '16 at 17:28

1 Answers1

3

From what I can see in the source for Google::Voice, it isn't using any sort of official API. (In fact, there is none.) Instead, it's accessing the web interface for Google Voice directly, including its login page.

This is bad. Google's web interface is not a stable API, and it's likely that something about it has changed since you last started your script. Given that your script kept running, my first guess would be that what's changed is the login form -- probably for security reasons, or to prevent automation. (One bad sign: I see markup for a CAPTCHA in the login form.)

Unfortunately, I can't offer any simple solution here. If you're comfortable messing around in your browser, you may be able to try fixing it yourself… but don't count on it continuing to work, as Google may make further changes which will, either intentionally or unintentionally, break your script again. If you need a reliable API to access phone data, you may want to consider using something other than Google Voice, such as Twilio.

Community
  • 1
  • 1
  • Thanks for the well investigated answer! – Mike Lempriere Jul 26 '16 at 17:29
  • Dang - got a phone call and couldn't edit my answer further so new reply. You mentioned seeing a captcha in the data - could you describe how you enabled that diagnostic? With that I might be able to figure things out myself... – Mike Lempriere Jul 26 '16 at 17:39
  • The login form is: https://accounts.google.com/ServiceLogin - if you view source, or open the web inspector in your browser, you'll find a couple references to a CAPTCHA. I didn't see one while logging in manually, but I can't say what might happen if you hit it from a script. –  Jul 26 '16 at 18:24