阅读了很多链接后: 我无法解决服务器端getuser = null问题的解决方法。 我需要一个完整的示例服务器端(app engine java)和客户端(android app)。 在某些链接中,人们会说:将用户保存到数据存储区并将其恢复。但我不能保存用户......因为它总是空的......
error
问候。
答案 0 :(得分:1)
要访问User对象,首先需要配置Endpoint以使用OAuth。在此处找到说明:https://cloud.google.com/appengine/docs/java/endpoints/auth
OAuth意味着您需要将项目配置为在定义API时在您引用的Constants对象下配置正确的客户端ID。
然后,您需要将User对象添加到Endpoint方法,例如:
@ApiMethod(name = "sayHi")
public MyBean sayHi(@Named("name") String name, User user) throws OAuthRequestException, IOException {
如果传入的客户端请求没有授权令牌或无效 一,用户为空。在您的代码中,您需要检查用户是否 null并执行以下操作之一,具体取决于条件:
- 如果用户非空,请执行授权操作。
- 如果用户为null,则抛出OAuthRequestException。
- 或者,如果用户为空,则在未经授权的访问时,对未经授权的客户端访问执行某些操作 期望的。
答案 1 :(得分:0)
假设您已生成clientIds(https://cloud.google.com/appengine/docs/java/endpoints/auth#Creating_OAuth_20_client_IDs),请确保您还更新Constants.java中的* _CLIENT_ID字符串:
如果您从maven原型创建项目,则值将显示如下:
public static final String WEB_CLIENT_ID = "replace this with your web client application ID";
public static final String ANDROID_CLIENT_ID = "replace this with your Android client ID";
public static final String IOS_CLIENT_ID = "replace this with your iOS client ID";
答案 2 :(得分:0)
我明白了。 只需获取CLIENT_ID和WEB_ID的新值。 现在的问题是在后端获取电子邮件用户的问题。 在端点... user!= null但始终是example.google.com。
Google正在努力解决。