2009-08-28 98 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,所以我不能真正帮助那里。 –