2013-01-02 55 views
1

谷歌的AdWords數據給出並行訪問

我開發利用同一AdWords API的訪問憑據兩個不同的應用。 Bot應用程序僅用於收集/分析來自API的數據。

應用程序#1和#2需要大約1個小時才能完成從API獲取/分析數據的過程。

我使用:

  1. 我自己的AdWords帳戶,
  2. 的ClientLogin身份驗證方法,
  3. Ruby語言。

問題

有時兩個timesframes(用於應用程序#1和#2)可以重疊,我開始變得噸以下錯誤:

AdwordsApi::Errors::ReportXmlError: HTTP code: 400, error type: 'AuthorizationError.USER_PERMISSION_DENIED' 

的下一個序列事件導致一個問題:

  1. 應用#1向Google請求授權令牌,並在收到一個請求後緩存它,
  2. 應用#1開始數據攝取使用令牌過程,
  3. 應用#2請求從谷歌的身份驗證令牌並將其緩存一次一個接收的,
  4. 應用#2開始的數據攝取使用令牌過程,
  5. 應用#1要求從AdWords API獲取另一部分數據,但由於第3項,應用1的身份驗證令牌失效,並且由於上述錯誤,應用開始窒息。

所以,問題是:有沒有辦法做這樣的設置,使無令牌干擾/無效這兩個應用程序在同樣的時間訪問AdWords API?

回答

1

我們有許多應用程序遵循您所描述的相同模式,但我們不會遇到令牌失效。

AdwordsApi::Api.new(credentials).authorize 

會快取所返回那裏,然後再使用後續請求的道理,但我們使用許多應用程序共享憑據,令牌僅由一個應用程序使用。我們將其緩存12小時,然後過期,導致發佈新的。