【问题标题】:Google::Voice module suddenly broken. How to enable diagnostics?Google::Voice 模块突然坏了。如何启用诊断?
【发布时间】:2016-07-22 20:23:05
【问题描述】:

我有一个已经运行了几年的 Perl 程序。它使用Google::Voice 模块(0.06)来处理传入和传出的短信。

最近电脑重启了,突然这个模块返回null而不是登录。机器上没有任何软件更改,只是重新启动。

我仍然可以使用网络浏览器在同一台计算机上登录 Google Voice 帐户,所以一定是脚本出了问题。

我有几个问题:

  • 还有其他人遇到这种情况吗?

  • 有人知道 Google Voice 的任何更改会破坏这一点吗?

  • 有人已经在这方面了吗?他们有解决办法吗?

  • 有什么方法可以启用诊断功能,也许我可以自己解决?

【问题讨论】:

  • 也许检查您的脚本使用环境变量(或其他非持久性数据)?此外,尝试使用该模块以最简单的方式登录 GV。如果这不起作用,请将其编辑为minimal reproducible example
  • 带有该模块的示例应用程序将不再工作 - 它只有两行代码 - 新建一个对象,然后调用登录方法。

标签: perl google-voice


【解决方案1】:

据我在the source for Google::Voice 中看到的,它没有使用任何形式的官方 API。 (事实上​​,there is none。)相反,它直接访问 Google Voice 的网络界面,包括其登录页面。

这很糟糕。 Google 的 Web 界面不是一个稳定的 API,自从您上次启动脚本以来,它的某些内容可能已经发生了变化。鉴于您的脚本一直在运行,我的第一个猜测是更改的是登录表单——可能是出于安全原因,或者是为了防止自动化。 (一个不好的迹象:我在登录表单中看到了验证码的标记。)

很遗憾,我无法在这里提供任何简单的解决方案。如果您习惯在浏览器中乱搞,您可以尝试自己修复它……但不要指望它继续工作,因为 Google 可能会进行进一步的更改,有意或无意地再次破坏您的脚本.如果您需要可靠的 API 来访问电话数据,您可能需要考虑使用 Google Voice 以外的其他方式,例如 Twilio

【讨论】:

  • 感谢您精心调查的答案!
  • 当 - 接到一个电话,无法进一步编辑我的答案,所以新的回复。您提到在数据中看到验证码 - 您能描述一下您是如何启用该诊断的吗?有了这个,我也许可以自己解决问题......
  • 登录表单是:accounts.google.com/ServiceLogin - 如果您查看源代码,或在浏览器中打开网络检查器,您会发现一些对验证码的引用。我在手动登录时没有看到,但我不能说如果你从脚本中点击它会发生什么。
猜你喜欢
  • 2016-05-19
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多