2012-05-18 39 views
1

我正在嘗試構建一個.NET服務應用程序,以訪問Google的Prediction API。.NET中的Google預測API服務身份驗證

此應用程序是一項服務(無用戶交互),所以我想知道如何自動驗證Google API(無需打開瀏覽器登錄,然後按「授權」 )。

我已經試過:

  • 跑了一些.NET API谷歌樣本的 - 他們似乎都需要打開瀏覽器,需要用戶點擊(這就是所謂的原生這個身份驗證方案應用程序客戶端認證,我相信)。

  • 嘗試使用Service Accounts OAuth2身份驗證 - 這是工作進行中。但是,這沒有.NET庫。我目前正在使用python示例,並且遇到了一些問題(因爲我不是Python開發人員)。

在這一點上,我希望我能夠得到python示例,並重新編寫它在.NET中或與Iron Python一起使用它。

我很感興趣,如果任何人有過這種問題之前和什麼是決議。如果OAuth2服務身份驗證在.NET中不可用(現在),我也向非OAuth2(也可能已棄用)身份驗證解決方案開放。

+1

您無法自動向Google API進行身份驗證。您必須至少執行一次,因爲您必須批准連接。在初始連接之後,該過程是無縫的並且可以隨時由用戶撤銷。我知道這是基於我使用網站掃描我的電子郵件收件人的事實。 –

+0

那麼,有必要對這個*只*一次嗎?我打算有一個Windows服務(沒有用戶界面)。在這種情況下,它是否會在該機器上運行控制檯應用程序來驗證並在服務中使用該令牌? – GolfWolf

回答

1

我寫了一個sample app(在Python & Java的,對不起,在C#中不可用),該認證一次,存儲服務器(谷歌應用程序引擎),並從該點向前的OAuth認證和相關數據重用這些共享憑據,在需要時刷新訪問令牌,而不要求最終用戶查看OAuth允許/拒絕對話框或OAuth的任何其他方面。

這仍然需要應用程序管理員執行OAuth對話框,但這是一次性事件。如果由於某種原因需要重置存儲的服務器憑證,初始化步驟可以通過特殊URL按需重新執行,但是,此重置功能受到保護,因此只有應用程序管理員可以發出該請求,而不是最終用戶。

+0

很高興知道,我會試一試。還有一個問題:是否有必要在每臺服務器(機器)上執行這個一次性事件? – GolfWolf

+0

不,在一次性初始化步驟中獲取的OAuth憑證應可在任何地方(即從任何服務器)使用。 –