Как получить идентификатор пользователя Google по электронной почте или идентификатор разрешения GoogleDrive

#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 )