2014-02-21 6 views
0

Я пытаюсь загрузить многостраничный документ с помощью Google Drive Api. (В частности - PUT https://www.googleapis.com/drive/v2/files/ {fileId})Загрузка новой версии файла с помощью Google Диска Api

В моей среде есть две супер-админа (пользователь A и B) (по любой причине). Api аутентифицируется с использованием одного из «супер-админ» (User A).

Когда я пытаюсь загрузить ревизию для пользователя A, тогда она преуспевает. Однако, когда я пытаюсь загрузить его для пользователя B, я получаю

'Аутентифицированный пользователь не имеет необходимого доступа к файлу {fileId}'.

Я бы предположил, что у супер администратора есть доступ ко всему. Влияет ли это на объем, который я использую? (Это мой текущий объем запроса - https://www.googleapis.com/auth/drive)

Может кто-нибудь сказать мне, что мне не хватает? : -/ Спасибо.

ответ

0

Даже супер администраторы не имеют доступа к файлу, если только им не был предоставлен прямой доступ к этому файлу. Вы можете:

  1. У пользователя есть общий доступ к файлу с пользователем B (доступ к записи). Затем пользователь B может обновить файл.

  2. Аутентификация пользователя A для выполнения обновления.

  3. Use a Service Account to authenticate and act as any user in the domain.

+0

Мне нравится вариант 3. Но, я немного запутался здесь. В настоящее время я использую метод «Идентификатор клиента для веб-приложения», в котором супер-администратор предоставляет мне (разработчику) доступ к диску. (Процесс, когда супер администратор должен войти в свою учетную запись и явно предоставить доступ, а затем управление перенаправляется на мое приложение). Затем я использую «токен доступа» для выполнения запросов. Я настроил учетную запись службы, но я не думаю, что описанный выше рабочий процесс (где супер администратор предоставляет мне доступ), возможен с учетными данными службы (поскольку нет концепции перенаправления uri с учетной записью службы). – curiouscoder

+0

, доступ к учетной записи супер администратора недостаточно. Вам нужна учетная запись службы, которой были делегированы права действовать от имени пользователей в домене для желаемых областей. См. Ссылку, включенную в № 3, в ней подробно описаны шаги. –

+0

Спасибо, Джей. Я вижу - цитата из третьей ссылки - /** * Создает и возвращает объект службы Диска, авторизуемый с учетными записями службы *, которые действуют от имени данного пользователя. * * @param userEmail Электронная почта пользователя. Может ли этот userEmail быть SuperAdmin, или он должен быть пользователем, являющимся владельцем файла? Я хочу иметь возможность изменять данные для всех пользователей на предприятии. – curiouscoder

Смежные вопросы