Настройки API облачной платформы Google для скрипта google-apps, который преобразует файл Excel в таблицу spreedsheet с помощью функции Drive.Files.insert () - PullRequest
1 голос
/ 09 апреля 2020

У меня есть googleform, которая собирает файлы Excel у пользователей и загружает их на диск. Как я понимаю, мне нужно перейти из файла Excel в электронную таблицу, чтобы открыть и получить данные. Поэтому я использую Drive.Files.insert() для преобразования файла, что требует дополнительных утверждений для скрипта. Я включил Google Drive API в разделе «Ресурсы»> «Дополнительные службы Google» в сценарии Google и связал этот сценарий Google с облачным проектом Google. Google Drive API также включен в облаке Google с «идентификаторами клиентов OAuth 2.0». Но мой сценарий по-прежнему не может пройти процесс входа в Google и возвращает только файл слов со страницей входа в Google.

сценарий:

var Blob01 = UrlFetchApp.fetch(thelink).getBlob();

var fileInfo = {
  title: "test1",
  mimeType: MimeType.GOOGLE_SHEETS,
  "parents": [{
    'id': FolderId
  }],
};

Drive.Files.insert(fileInfo, Blob01, {convert: true});

Настройки OAuth: области действия для API Google >> .. / auth / drive и ../auth/drive.file учетные данные: идентификатор клиента OAuth >> Веб-приложение google drive api включено, и учетные данные добавляются как «Google drive api» & «web browser» & «User data»

спасибо заранее

1 Ответ

1 голос
/ 09 апреля 2020

Когда вы используете UrlFetchApp для получения файла с Диска, потребуется авторизация. Вот почему вы получаете файл слова со страницей входа в Google.

Попробуйте вместо этого использовать DriveApp, чтобы получить файл из каталога Google Drive. Например, вы можете использовать функцию .getFilesByName().

Вот пример для вашего случая использования:

 var blob = DriveApp.getFilesByName("Excel.xlsx").next().getBlob(); // Assuming this file name is unique in your google drive
 var file_ops = { 
    title: "test1",
    mimeType: MimeType.GOOGLE_SHEETS,
    "parents": [
       {
          "id": FolderId
       }
    ]
 };
 Drive.Files.insert(file_ops, blob, {"convert": true});

Ссылки:

DriveApp

...