0

我的聊天机器人有大约 100 个客户的电子邮件 ID。我可以制作一个 JID 数组或 smthng 来存储许多电子邮件吗?谢谢你。

4

1 回答 1

1

您可以将它们存储在App Engine Datastore中;您可以按如下方式为您的用户创建实体(您只需为每个用户执行一次):

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Entity allowedUser = new Entity("AllowedUser");
allowedUser.setProperty("JID", "[[ user's JID ]]");
datastore.put(allowedUser);

然后,在您的代码中,您可以通过检查用户的 JID 是否在数据存储区中来查看是否允许用户访问:

Query q = new Query("AllowedUser");
q.setFilter(new FilterPredicate("JID", Query.FilterOperator.EQUAL, "[[ user JID to check ]]");
PreparedQuery pq = datastore.prepare(q);
if (pq.countEntities(FetchOptions.Builder.withLimit(1)) > 0) {
    // user is allowed
} else {
    // user is not allowed
}

在这里,我们执行查询以从具有给定 JID 的数据存储中获取所有用户。我们还将结果的数量限制为不超过 1 个,因为我们只关心它是否存在(无论如何不应有多个具有相同 ID 的结果)。然后我们看看查询的结果是否有多个结果;如果是这样,那么用户必须在表中并且他们可以访问。如果他们不是,那么他们不会。

请注意,您还可以从管理控制台中的数据存储查看器中添加实体,因此如果您没有太多实体,那么使用该路径可能会比第一个代码片段更容易。

于 2012-07-14T00:17:01.390 回答