0

我正在尝试使用 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);

任何帮助是极大的赞赏!

4

1 回答 1

1

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

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

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

于 2013-07-11T22:53:52.127 回答