Загрузите слово do c и скрипт приложения Google. Преобразовать слово do c в google do c, а затем запустить на нем скрипт приложения? - PullRequest
1 голос
/ 25 февраля 2020

Я могу загрузить файл и преобразовать его с помощью Google Drive v3, который заботится о преобразовании.

function uploadFile(auth) {
  const drive = google.drive({version: 'v3', auth});
  var fileMetadata = {
    'name': 'My Uploaded Test Word File',
    'mimeType': 'application/vnd.google-apps.document'
  };
  var media = {
    mimeType: 'application/msword',
    body: fs.createReadStream('./test-word.doc')
  };
  drive.files.create({
    resource: fileMetadata,
    media: media,
    fields: 'id'
  }, function (err, file) {
    if (err) {
      // Handle error
      console.error(err);
    } else {
      console.log('File Id:', file.id);
    }
  });
}

Проблема в том, что преобразование вызывает несколько аномалий, которые нуждаются в очистке и могут быть только сделано с помощью сценариев Google App - как удаление закладок.

Хотите знать, какой лучший способ запустить скрипт Google Apps для этого слова, сделать c после его преобразования. Можно ли загрузить файл сценария приложения и запустить его после завершения преобразования?

Буду признателен за предложения.

1 Ответ

2 голосов
/ 26 февраля 2020
  • Вы хотите запустить функцию скрипта Google Apps после того, как файл DO C (файл Microsoft Do c) был загружен как документ Google.
  • Вы хотите использовать googleapis с Node.js для загрузки файла DO C
  • Вы хотите использовать Google Apps Script для пост-обработки преобразованного документа Google.
  • Вы уже можете загрузить DO C файл с Drive API.

Если я правильно понял, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

В этом ответе я хотел бы запустить функцию скрипта Google Apps с помощью веб-приложений после загрузки файла. Также вы можете запустить функцию Google Apps Script, используя Apps Script API. Но в этом случае вы используете OAuth2. Поэтому я подумал, что с помощью веб-приложений легко и безопасно достичь своей цели. Этот пример сценария выглядит следующим образом.

Поток:

  1. Загрузите файл DO C в качестве документа Google с помощью googleapis.
  2. Запустите функцию Google Apps Script, запрашивая веб-приложения.

Использование:

Чтобы использовать это, выполните следующую последовательность действий.

1. Создайте новый проект скрипта Google Apps.

Пример скрипта веб-приложений - это скрипт Google Apps. Поэтому, пожалуйста, создайте проект Google Apps Script.

Исходя из вашего вопроса, я могу подтвердить, что у вас уже есть проект GAS. Поэтому, пожалуйста, используйте его.

2. Скопируйте и вставьте скрипт.

Пожалуйста, скопируйте и вставьте следующий скрипт.

function doGet(e) {
  var fileId = e.parameter.id;  // You can retrieve the file ID from Node.js using this.

  // do something: Please set the function you want to run.

  return ContentService.createTextOutput("Done.");
}

3. Развертывание веб-приложений.

  1. В редакторе сценариев откройте диалоговое окно с помощью «Publi sh» -> «Развернуть как веб-приложение».
  2. Выберите «Me " для " Запустите приложение как: ".
  3. Выберите " Только я " для " У кого есть доступ к приложению: ".
    • В этих настройках токен доступа используется для доступа к веб-приложениям.
    • Если для параметра «Любой, даже анонимный» установлено значение «У кого есть доступ к приложению:», токен доступа Не требуется использовать.
  4. Нажмите кнопку «Развернуть» как новую «Версия проекта».
  5. Автоматически откройте диалоговое окно «Требуется авторизация».
    1. Нажмите «Просмотреть разрешения».
    2. Выберите собственную учетную запись.
    3. Нажмите «Дополнительно» в разделе «Это приложение не подтверждено».
    4. Нажмите " Go to ### имя проекта ### (небезопасно) "
    5. Нажмите кнопку" Разрешить ".
  6. Нажмите" ОК ".
  7. Скопируйте URL-адрес веб-приложений. Это как https://script.google.com/macros/s/###/exec.
    • Когда вы изменили скрипт Google Apps, пожалуйста, повторно разверните его как новую версию. Этим измененный сценарий отражается в веб-приложениях. Пожалуйста, будьте осторожны.

4. Модифицированный скрипт:

Когда ваш скрипт модифицирован, пожалуйста, измените его следующим образом. И, пожалуйста, задайте URL-адрес веб-приложений.

function uploadFile(auth) {
  const drive = google.drive({ version: "v3", auth });

  var fileMetadata = {
    name: "My Uploaded Test Word File",
    mimeType: "application/vnd.google-apps.document"
  };
  var media = {
    mimeType: "application/msword",
    body: fs.createReadStream("./test-word.doc")
  };
  drive.files.create(
    {
      resource: fileMetadata,
      media: media,
      fields: "id"
    },
    function(err, file) {
      if (err) {
        // Handle error
        console.error(err);
      } else {
        const fileId = file.data.id;
        console.log("File Id:", fileId);

        // The below script requests to Web Apps.
        const request = require("request");
        auth.getRequestHeaders().then(authorization => {
          request(
            {
              url: `https://script.google.com/macros/s/###/exec?id=${fileId}`,  // Please set this.
              method: "GET",
              followAllRedirects: true,
              headers: authorization
            },
            function(err, res, body) {
              console.log(body);
            }
          );
        });
      }
    }
  );
}
  • В вашем скрипте идентификатор файла можно напрямую получить с помощью file.data.id.
  • Когда сценарий веб-приложений готово, Done. возвращается.

Примечание:

  • Когда вы изменили сценарий Google Apps для веб-приложений, пожалуйста, повторно разверните веб-приложения в качестве новой версии. Таким образом, последний сценарий отражается в Web Apps. Пожалуйста, будьте осторожны.

Ссылки:

Если я неправильно понял ваш вопрос и это не то направление, которое вам нужно, я приношу свои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...