2016-07-22 88 views
1

我有一个已经运行了几年的Perl程序。它使用Google::Voice模块(0.06)处理传入和传出的文本消息。Google ::语音模块突然中断。如何启用诊断?

计算机最近重新启动,突然此模块返回null而不是登录。机器上没有软件更改,只是重新启动。

我仍然可以使用网络浏览器在同一台计算机上登录Google语音帐户,因此它必须是发生故障的脚本。

我有几个问题:

  • 是其他任何人遇到此?

  • 是否有人知道任何会改变Google Voice的变化?

  • 有没有人已经在这个,他们有修补程序吗?

  • 有没有什么办法启用诊断,所以也许我可以自己弄明白?

+1

也许检查您的脚本使用环境变量(或其他非持久性数据)?此外,尝试使用该模块尽可能简单地登录到GV。如果这不起作用,请将其编辑为[mcve] –

+0

带模块的示例应用程序将不再工作 - 它只有两行代码 - 新建一个对象,然后调用登录方法。 –

回答

3

从我在the source for Google::Voice中可以看到的,它没有使用任何官方的API。 (实际上,there is none。)相反,它直接访问Google语音的Web界面,包括其登录页面。

这很糟糕。 Google的网络界面并不是一个稳定的API,并且自上次启动脚本后,它的某些变化可能已经发生了变化。考虑到你的脚本一直在运行,我的第一个猜测是改变的是登录表单 - 可能出于安全原因,或者阻止自动化。 (一个坏标记:我在登录表单中看到了验证码的标记。)

不幸的是,我不能在这里提供任何简单的解决方案。如果您可以在浏览器中轻松搞定,可以自己尝试修复它......但不要指望它继续工作,因为Google可能会做出进一步的更改,这会有意或无意地再次打破脚本。如果您需要可靠的API来访问电话数据,则可能需要考虑使用Google Voice之外的其他功能,例如Twilio

+0

感谢您的调查答案! –

+0

当 - 接到电话,无法再编辑我的答案,所以新的答复。你提到在数据中看到验证码 - 你能描述你是如何启用该诊断的吗?有了这个,我可以自己弄清楚事情...... –

+0

登录表单是:https://accounts.google.com/ServiceLogin - 如果您查看源代码或在浏览器中打开网络检查器,您会发现一对夫妇对CAPTCHA的引用。手动登录时我没有看到一个,但我不能说如果从脚本中点击它会发生什么情况。 – duskwuff