2009-12-16 37 views
0

我在嘗試使用/瞭解Google請求令牌機制。我打算將它用於我開始開發的使用OpenSocial API訪問Orkut數據的應用程序。已安裝應用程序的OAuth請求令牌

我讀了這個document,它解釋了爲安裝的應用程序獲取令牌的步驟。本文檔告訴您使用Google OAuth API中的OAuthGetRequestToken方法來獲取請求令牌。訪問此功能的手冊(available here)。但需要的參數oauth_consumer_key要求提供「標識第三方Web應用程序的域」,但我沒有域,它是已安裝的應用程序。

所以我的問題是,我應該在這種情況下放入這個參數?

我使用oauth_playground來運行我的測試。

THX

+0

你是否註冊過Google的應用程序? – Grace

+0

我沒有。據我所知,這隻對Web應用程序(有一個域)完成。就我而言,它是一個安裝在用戶計算機上的本地應用程序。 – Andres

回答

1

從我的文檔中看過,在獲取請求令牌下面的指令意味着你只需通過「匿名」作爲消費者的關鍵...

「1.安裝應用程序聯繫Google授權服務,請求一個或多個Google服務的請求令牌,請求使用「匿名」使用者密鑰/密鑰進行簽名。 (OAuthForInstalledApps

+0

是的,我已經閱讀過它,並嘗試使用oauth playground(http://googlecodesamples.com/oauth_playground/)進行測試。它可以與開放社交範圍一起使用,但不會與我嘗試使用的Orkut一起使用。不過謝謝 – Andres

0

訣竅是創建一個混合auth過程。您可以在自己的域中註冊一個Web應用程序,通過OAuth for Web Apps授權用戶訪問Web應用程序,然後實施一種機制,通過該機制,安裝的應用程序可以從Web應用程序獲取該授權。

我的想法是安裝的應用程序會向您的站點發送密鑰對請求。它會收到一個初始密鑰和一個授權密鑰,這兩個密鑰都會存儲在網站的數據庫中一次性使用。

該應用程序然後將使用任何機制來啓動外部瀏覽器,將其指向 yourdomain.com/authorizestart.php?initiate= [初始化代碼]。該網站將代碼存儲在會話變量中,然後將該用戶發送給Google進行身份驗證。如果認證成功,並且Google向用戶返回下一個標記,則將其存儲在與啓動密鑰相關的數據庫條目中。

用戶關閉瀏覽器,在您的應用程序點擊「完成」按鈕,應用程序,然後將請求發送到yourdomain.com/tokenretrieve.php?authorize=[authorize鍵]

您的網站看起來最多Google令牌並將其傳回,該應用完成了Oauth流程。

問題在於您必須分享您在註冊過程中創建的「消費者機密」。有人可以對其進行反編譯或嘗試捕獲其輸出並發現您的密鑰,這是用於加密來自Google服務器的響應的方法的一部分。也就是說,與使用「匿名」作爲您的消費者機密相比,情況如何?