AppEngine用户服务电子邮件地址始终返回null

时间:2013-07-11 21:26:30

标签: google-app-engine google-cloud-messaging

我正在尝试使用GCM使用App Engine构建作业网站。人们可以对其进行广告宣传,并通知其他人。当某人发布消息时,我希望将他们的电子邮件ID与消息一起附加,以确保该消息是合适的并且没有任何伤害,因此如果有人试图玩弄它可能更容易找到该人接着就,随即。我强迫用户在他们做任何事情之前登录gmail帐户。

我试图使用UserService来检索电子邮件ID和名称,但总是给我null。不确定我在哪里做错了。

@ApiMethod(name = "sendMessage")
  public void sendMessage(@Named("message") String message)
      throws IOException {
    Sender sender = new Sender(API_KEY);
    // create a MessageData entity with a timestamp of when it was
    // received, and persist it
    UserService userService = UserServiceFactory.getUserService();
    User user = userService.getCurrentUser();

    MessageData messageObj = new MessageData();
    if(user != null)
       messageObj.setMessage(message + " User : " + user.getUserId() + "Email " + user.getEmail());
    else 
       messageObj.setMessage(message);

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

UserService.getCurrentUser()将在用户登录时返回User对象,否则返回null。

您可以调用UserService.isUserLoggedIn()来测试用户是否已登录。

https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/users/UserService#getCurrentUser()