public Set<UserId> getUsers() {
   List<String> ids = getListParameter(USER_ID);
   if (ids.isEmpty()) {
     if (token.getViewerId() != null) {
       // Assume @me
       ids = Lists.newArrayList(token.getViewerId());
     } else {
       throw new IllegalArgumentException("No userId provided and viewer not available");
     }
   }
   Set<UserId> userIds = Sets.newLinkedHashSet();
   for (String id : ids) {
     userIds.add(UserId.fromJson(id));
   }
   return userIds;
 }
 public String getAppId() {
   String appId = getParameter(APP_ID);
   if (appId != null && appId.equals(APP_SUBSTITUTION_TOKEN)) {
     return token.getAppId();
   } else {
     return appId;
   }
 }