チャットボット用のクライアントのメール ID が約 100 あります。多くの電子メールを保存するために JID の配列または一部を作成できますか? ありがとうございました。
1 に答える
1
それらをAppEngineデータストアに保存できます; 次のようにユーザーのエンティティを作成できます(これは、ユーザーごとに1回だけ行う必要があります)。
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 に答える