2016-07-22 32 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