Аутентификация Google: правильная область для копирования общедоступного документа Google

#google-drive-api #google-oauth #scopes

#google-drive-api #google-oauth #области

Вопрос:

Я создал приложение, которое должно копировать общедоступный документ Google на Google Диск пользователя, вошедшего в систему. Это работает хорошо, если для области установлено значение https://www.googleapis.com/auth/drive , но если я ограничу его https://www.googleapis.com/auth/drive.file , я увижу следующую ошибку:

 req-url: https://content.googleapis.com/drive/v3/files/1vpJM9XgJzBI6oHAZCupRTF0TdIvgiq5tTl1kYFt8zLg/copy?alt=jsonamp;key=AIzaSyAON3JJQtrQYO3RcuRQo7BnFw8hzVkEDUE
req-payload: {"name":"Invoice 23rd Apr 11:06pm","parents":["1mnBEoqL677quoLGpKHY-2kzh8j7WU-Od"]}

response:
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "File not found: 1vpJM9XgJzBI6oHAZCupRTF0TdIvgiq5tTl1kYFt8zLg.",
    "locationType": "parameter",
    "location": "fileId"
   }
  ],
  "code": 404,
  "message": "File not found: 1vpJM9XgJzBI6oHAZCupRTF0TdIvgiq5tTl1kYFt8zLg."
 }
}

  

NOTE файл src общедоступен по адресуhttps://docs.google.com/document/d/1vpJM9XgJzBI6oHAZCupRTF0TdIvgiq5tTl1kYFt8zLg/edit?usp=sharing

Комментарии:

1. Если «копировать» означает копировать общий документ Google на пользовательский Google Диск, как насчет использования метода Files: copy ? В этом случае, я думаю, что область https://www.googleapis.com/auth/drive.file может быть использована для копирования файлов. Итак, как насчет использования этой конечной точки? POST https://www.googleapis.com/drive/v3/files/1vpJM9XgJzBI6oHAZCupRTF0TdIvgiq5tTl1kYFt8zLg/copy Текст запроса совпадает с вашим. Если я неправильно понял ваш вопрос и это не решило вашу проблему, я приношу свои извинения.

2. Я предполагаю, что я использую тот же метод, на который вы указали. То, что я поместил здесь, — это то, что network-tab показывает мне Chrome. На самом деле я использую клиентский API Google ( developers.google.com/api-client-library/javascript ). URL-адрес content.googleapis.com/drive/v3/files /… — это то, что создает клиентский SDK

3. Спасибо вам за ответ. Я не мог заметить, что вы используете Javascript и метод files.copy из вашего вопроса. Я прошу прощения, что мой комментарий не был полезен для вашей ситуации. А также я должен извиниться за мое плохое знание английского.

4. Большое спасибо @Tanaike . Вы замечательный человек, и ваш английский очень хорош. Я постараюсь найти правильный ответ и опубликую его здесь.