Имя: Пароль:
1C
1С v8
API гугла для Google Drive. Авторизация. Параметр scope
0 PiotrLoginov
 
02.10.18
14:28
Всем привет. Подскажите, кто в теме:

Пытаюсь ограничить еще при авторизации по OAuth область доступных через API файлов. Диском одного аккаунта.  Дело в том, что авторизующемуся юзеру разные люди в разное время расшаривали разные файлы, лежащие в их гугл-дисках, а мне сейчас работать по API надо только с файлами, лежащими в диске только одного конкретного Google-аккаунта.
Для достижения этой цели пытаюсь использовать параметр "scope" get-запроса авторизационной формы, указывая там кроме урла на область права (https://www.googleapis.com/auth/drive.readonly) также и е-мэйл юзера, с файлами которого хочу работать.
В итоге вместо авторизационной формы получаю страницу

400. That’s an error.

Error: invalid_scope
Some requested scopes were invalid. {valid=[https://www.googleapis.com/auth/drive.readonly], invalid=[ЗДЕСЬ Е-МЭЙЛКОТОРЫЙЯВСТАВИЛ]}

Как победить?
1 PiotrLoginov
 
02.10.18
14:35
Не понимаю, как ограничивают область доступных дисков/папок. Юзеру, под которым будут выполняться запросы, доступно столько разного мусора...

И вот ведь, в документации гугла примера get-запроса авторизационной формы:

https://accounts.google.com/o/oauth2/v2/auth?
scope=email%20profile&
response_type=code&
state=security_token%3D138r5719ru3e1%26url%3Dhttps://oauth2.example.com/token&;
redirect_uri=com.example.app:/oauth2redirect&
client_id=client_id


То есть scope - это "email%20profile". но как вставить email аккаунта, с чьими файлами собираюсь работать по API ?
2 PiotrLoginov
 
02.10.18
15:27
Разобрался. Параметром "scope" нельзя ограничить область видимости файлами одного аккаунта. В параметр можно вставлять область "email" (правда, такое короткое имя в гугле не используется), но значение это будет иметь другое.

Ну Ок.  Считаем вопрос закрытым.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший