People API の使用準備の手順を完了したら、ディレクトリの連絡先とプロフィールを読み取る準備が整います。
次のコードサンプルは、いくつかの簡単なリクエストを送信する方法を示しています。メソッドの全リストについては、リファレンス ドキュメントをご覧ください。
ディレクトリのユーザーを一覧表示する
ユーザーのドメイン ディレクトリ内の連絡先とプロフィールのリストを取得するには、次のコードを使用します。
GET /v1/people:listDirectoryPeople?sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=names,emailAddresses HTTP/1.1
Host: people.googleapis.com
List<String> sources = new ArrayList<>();
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT");
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE");
ListDirectoryPeopleResponse response = peopleService.people().listDirectoryPeople()
.setSources(sources)
.setReadMask("metadata,names,emailAddresses")
.execute();
List<Person> people = response.getPeople();
変更されたディレクトリのユーザーを一覧表示する
// Initial request
List<String> sources = new ArrayList<>();
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT");
sources.add("DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE");
ListDirectoryPeopleResponse fullSyncResponse = peopleService.people().listDirectoryPeople()
.setSources(sources)
.setReadMask("metadata,names,emailAddresses")
.setRequestSyncToken(true)
.execute();
// Fetch all the pages
while (fullSyncResponse.getNextPageToken() != null) {
fullSyncResponse = peopleService.people().listDirectoryPeople()
.setSources(sources)
.setReadMask("metadata,names,emailAddresses")
.setRequestSyncToken(true)
.setPageToken(fullSyncResponse.getNextPageToken())
.execute();
}
// Some time passes
// Fetch incremental changes using the sync token returned in the last fullSyncResponse.
try {
ListDirectoryPeopleResponse incrementalSyncResponse = peopleService.people().listDirectoryPeople()
.setSources(sources)
.setReadMask("metadata,names,emailAddresses")
.setSyncToken(fullSyncResponse.getNextSyncToken())
.execute();
for (Person person : incrementalSyncResponse.getDirectoryPeople()) {
handlePerson(person);
}
// Fetch all the pages
while (incrementalSyncResponse.getNextPageToken() != null) {
incrementalSyncResponse = peopleService.people().listDirectoryPeople
.setSources(sources)
.setReadMask("metadata,names,emailAddresses")
.setSyncToken(fullSyncResponse.getNextSyncToken())
.setPageToken(incrementalSyncResponse.getNextPageToken())
.execute();
for (Person person : incrementalSyncResponse.getDirectoryPeople()) {
handlePerson(person);
}
}
} catch (GoogleJsonResponseException e) {
if (e.getStatusCode() == 410) {
// Sync token expired. Make full sync request.
}
}
void handlePerson(Person person) {
if (person.getMetadata().getDeleted()) {
// Handle deleted person
} else {
// Handle changed person
}
}
同期動作の詳細については、ListDirectory をご覧ください。
ディレクトリ内のユーザーを検索する
接頭辞クエリに一致するユーザーのドメイン ディレクトリ内の連絡先とプロファイルのリストを取得するには、次のコードを使用します。
POST /v1/people:searchDirectoryPeople?query=John&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=names,emailAddresses HTTP/1.1
Host: people.googleapis.com
List