2009-08-28 97 views
2

我正在編寫一個Android應用程序,我希望能夠將請求發送到Google App Engine應用程序。爲了做到這一點,Android應用程序需要驗證用戶(應該只能使用他們的Google帳戶)。我不確定我是否做得對,但這是迄今爲止我找到的唯一方法:從Android客戶端應用程序登錄到AppEngine Web應用程序

  1. 將電子郵件,密碼等發送到https://www.google.com/accounts/ClientLogin的
  2. 獲得上述地址的授權令牌
  3. 使用授權令牌的請求發送到AppEngine應用程式

的頭,但這個不工作(users.get_current_user()仍然返回沒有)。有沒有正確的方法來做到這一點?

+1

有沒有官方的方式 - 你需要假裝你是一個瀏覽器,並像你說的那樣發佈到ClientLogin。這應該雖然工作 - 也許發佈一個新的問題與不工作的代碼? –

回答

1

您描述的方法幾乎是正確的。相反,您需要:

  1. 將憑證提交給ClientLogin並取回授權令牌。
  2. 將授權令牌提交到/ _ah/login並獲取cookie(和302重定向)。
  3. 對所有後續請求使用返回的cookie。

這是進程下,appcfg使用 - 見appengine_rpc.py有關如何使用它的一個例子(你可以使用,如果你使用Python模塊) - 具體而言,_Authorize功能。

+0

謝謝,那是關於它。如果我使用捲曲,它適用於我,但不幸的是,我無法使用Apache HttpComponents。不知道如何阻止我的客戶端遵循重定向。關於它的新問題在這裏:http://stackoverflow.com/questions/1352949/preventing-httpclient-4-from-following-redirect – mjumbewu

+0

不幸的是,我不是特別熟悉Java,所以我不能真正幫助那裏。 –