#google-apps-activity
#google-приложения-активность
Вопрос:
Google Drive возвращает:
- электронная почта пользователя
- идентификатор разрешения
https://developers.google.com/drive/api/v3/reference/permissions
API активности Google Drive v2 возвращает идентификатор пользователя Google, пример: PersonName: people / ACCOUNT_ID https://developers.google.com/drive/activity/v2/reference/rest/v2/activity/user#KnownUser
Как я могу сопоставить адрес электронной почты пользователя ИЛИ идентификатор пользователя с «people / ACCOUNT_ID»?
Есть ли способ получить ACCOUNT_ID, имеющий адрес электронной почты пользователя / permissionId или наоборот?
Комментарии:
1. Под
people/ACCOUNT_ID
doy вы имеете в видуresourceName
возвращаемый API-интерфейс People ?2. Да, это правильно.
Ответ №1:
запрос people.get ничего не даст, если resourceName не равно people / me или person отсутствует в вашем списке контактов.
Ответ №2:
При условии, что у вас есть имя пользователя из API активности диска:
- Это имя соответствует имени ресурса People API
- Создайте запрос people.get с указанием
resourceName
формыpeople/xxxxx
of и задайтеpersonFields
значениеemailAddresses
иfields
emailAddresses/value
- Метод Drive API v3 Permissions: list вернет вам все существующие идентификаторы разрешений и соответствие
emailAddresses
для указанного файла - Невозможно отфильтровать разрешения: список результатов напрямую
emailAddresses
, поэтому вам потребуется реализовать программную функциональность для сравнения всех разрешений для файла с определенным именем пользователя
Комментарии:
1. как упоминалось @PlugHead, при запросе вы
people.get
НЕ получите адрес электронной почты, если этого человека нет в вашем списке контактов.2. К вашему сведению, если вы добавите
emailAddresses/value
fields
, я получу пустой результат. Удалениеfields
работает, как и ожидалось.3. На данный момент я вижу два обходных пути: 1. Используйте
people.get
и запрашивайтеphotos
, вы можете использовать этот API без Oauth (т. Е. Запрашивать общедоступную информацию). Затем сопоставьтеphoto.url
из ответа URL-адрес фотографии, возвращенный Drive API. 2. Сопоставьте диск. Изменения. укажите временную метку с временными метками активности диска. ЕслиActivity.timestamp
это почти то же самоеDrive.Change.timestamp
, что и, тоlastModifyingUser
, вероятноPerson
, это. Под «почти» я подразумеваю очень короткий интервал (до секунды).4. Я создал проблему, которая была принята: ( issuetracker.google.com/issues/130103879 )