2012-01-18 65 views
0

我正在開發一個PHP腳本來顯示包含一些關於我的Google Analytics配置文件的圖表和統計信息的頁面。我向服務器發送3個或4個ajax異步調用;然後服務器使用google-api-php-client獲取數據。 Google每次刷新頁面大約有10次請求。google-api-php-client apiAuthException刷新OAuth2

的問題是我是從API得到完全隨機的例外:

Fatal error: Uncaught exception 'apiAuthException' with message 'Error refreshing the OAuth2 token, message: ' in apiOAuth2.php on line 242

有一次我成功地獲取數據,一次不行。這是非常煩人的,因爲我找不到爲什麼可能是什麼?異步電話也許?

只是爲了確保用戶配額設置爲1000個請求/秒。最終,我從API獲得'用戶配額優秀',這是不可能的。

+0

您的Google帳戶的兩步驗證是否已關閉?如果您嘗試通過PHP-API訪問您的GA帳戶但打開了兩步,則會引發此錯誤。 – jmishra 2012-01-19 01:17:59

+0

@ jbloom1704感謝您的提示。我即將解決這個錯誤。我認爲這是我的錯:在每次請求時,訪問令牌(離線)可能會過期,並且它將被替換爲一個新的訪問令牌,我需要在通話結束後立即回寫給我的商店。我認爲這是問題:從文件中讀取舊的訪問令牌! – gremo 2012-01-19 10:39:42

+0

不錯,請問爲什麼你在基於PHP的API中使用Oauth?在我看來,你可以簡單地使用這個後端強度(腳本)來完成安全的調用,而無需任何授權。我的意思是,這就是我訴諸它的原因。 – jmishra 2012-01-20 02:08:47

回答

0

我回答自己,因爲我發現這個問題(是我的壞):

  • 我的訪問令牌存儲到一個加密的文件
  • 即使訪問令牌應該離線不真的離線:它過期了,但包含刷新令牌 API將發送以獲得新的新訪問令牌
  • 新訪問令牌應該再次保存到文件中(我將它保存到__destruct()我的包裝類的方法),並用於下一個請求(我沒有保存它!)
相關問題