2016-11-22 11 views
0

Directory.Users.Listから返されたユーザーのリストをフィルタリングしようとしていて、フィルタでcreationTime値を使用したいとします。creationTimeと他のディレクトリメタフィールドをクエリで使用できますか?

CREATIONTIME> = 2016年6月30日(または引用された同じ値):これによると:私はのような何かをしようとすると、

Search for users

...あなたはしかし、比較に日付フィールドを使用することができます

...私が取得:

Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request 
{ 
    "code" : 400, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Invalid Input: creationTime>=2016-06-30", 
    "reason" : "invalid" 
    } ], 
    "message" : "Invalid Input: creationTime>=2016-06-30" 
} 

メッセージは特に有用ではない - これは、クエリでの構文の問題である、またはそれはそのトンケースですフィールドはクエリでは使用できません(この記事には記載されていませんが、JSONレスポンスの一部です)。

この記事では、日付フィールドクエリのフォーマットを指定していますが、このフィールドには時間コンポーネントも含まれているため、JSONに表示されているフォーマットと同じ結果を同じように複製しようとしました。

また、Try it!ユーザーリファレンスページのセクションを参照してください。

また、数値(Date.getTime()、実際には)を使用してみました。同じエラーです。

ありがとう...

P.S.面白いことに、GoogleではChromebookの日付フィールドでの検索方法を文書化していますが、これはユーザーにとっての意味とはまったく異なります。私はまだこれでcreationTimeを使用することはできませんが、Chromebookではうまくいきます。これのもう1つの部分は、文書化されていないフィールドを参照していることと、文書化されたフィールド(lastSync vs. syncなど)を使用しようとする理由です。同じメッセージで失敗します。この全体が半分焼かれたようです。

View Chrome device information

+0

このクエリ形式を使用できますか?引用符に注意してください。 createdTime> '2016-10-10' Directory APIはDrive REST APIに近いため、同じ構文を使用することは意味があります。 これがうまくいかない場合は、有効なキーワードが[検索ユーザー](https://developers.google.com/admin-sdk/directory/v1/guides/search-users)にあるため、サポートされていない可能性があります。 。 – noogui

+0

@noguiレスポンスありがとう。はい、単純な日付としてのタイムスタンプとJSONで返される形式の両方のタイムスタンプを引用してみましたが、同じ一般的なエラーが発生しました。ネイティブ(サポート)のDateフィールドを持つ別のオブジェクトで遊んで、問題がクエリ形式であるかフィールド(この時点でフィールドが疑わしい)であるかどうかを調べることができます。 – MushyMiddle

+0

あなたはそれを持っています。 Answerでは、[users.list](https://developers.google.com/admin-sdk/directory/v1/guides/search-users)で指定されたフィールドのみがサポートされており、 'creationTime'は含まれていません。 – noogui

答えて

1

表に記載されているフィールドのみがusers.list検索経由で検索可能です。

回避策(これはあなたに適しているかわかりません)は、検索に使用するデータをcustom user fieldsにプッシュすることです。これらのフィールドは検索可能です。

関連する問題