2011-04-29 105 views
3

服务器位于Google App Engine上,客户端是Android移动应用程序。我想通过GAE上的REST API使用用户API从Android登录用户。如何在Google App Engine和Android上使用Google用户API

在用户API文档中,它看起来像键(在服务器上构造用户对象)是电子邮件。但我被告知有一种方法可以通过和oauth令牌获取用户对象。这意味着你会调用users.get_current_user()并且该标记将被自动用于获取该用户对象。

问题:

1 - 是否有这个过程(代码)任何可用的例子吗? 2 - 用户API期望在哪里找到宣誓令牌?作为请求参数?是否在调用get_current_user()时自动注入令牌?

谢谢!

+0

我想做同样的事情,只有我没有使用OAuth。相反,我使用谷歌的身份验证。我试图通过ASID cookie传递请求来获取User对象,但我总是从getCurrentUser()返回null。我在这里发布了这个问题:http://stackoverflow.com/questions/9811730/login-to-appengine-from-android-client。我在appengine上使用java,虽然 – Patrick 2012-03-22 12:38:37

回答

3

OAuth API文档:

from google.appengine.api import oauth 

user = oauth.get_current_user() 

凭借有效的OAuth要求,这将返回一个db.User对象就像users.get_current_user()。

您的应用的OAuth端点URL详细显示在同一页面上。

+0

谢谢,这对我来说很清楚,剩下的一个问题。 “一旦获得授权,消费者就会呼叫服务提供商获取访问令牌,消费者会将该令牌包含所有对应用Web服务端点的请求。” - 如何提供令牌?作为查询字符串参数? – 2011-04-29 18:48:13

+0

访问令牌包含在Authorization标头中。请参阅示例@ http://code.google.com/apis/accounts/docs/OAuth_ref.html#SigningOAuth – 2011-04-29 18:55:13