Вызов Google App Script из PHP

309
21 июня 2017, 02:05

Код вызова скрипта выглядит следующим образом

<?php
include_once __DIR__ . '/../vendor/autoload.php';
$client = new Google_Client();
$client->addScope("https://www.googleapis.com/auth/drive");
$client->addScope("https://www.googleapis.com/auth/documents");
$client->setAccessToken(require('TOKEN.php'));
try {
    $script = new Google_Service_Script($client);
    $scriptBody = new Google_Service_Script_ExecutionRequest();
    $scriptBody->setFunction('myFunction');
    //$scriptBody->setParameters([]);
    $scriptBody->setDevMode(true);
    //DocumentApp.getActiveDocument().getId()
    $result = $script->scripts->run('177Vt54Z-diSzUqV9TWEXcAlPAHcPYkhBRSmGEtsza60', $scriptBody);
    //Project key
    //$result = $script->scripts->run('Mvdxvn6AxcoJR2H1wIsro6gRkjHxb-ANQ', $scriptBody);
    //SDC key
    //$result = $script->scripts->run('b553ab21c0abcc1f', $scriptBody);
    //Script ID
    //$result = $script->scripts->run('1i-Z0JC-VzfPNcUW10kZro-DgzaNUsesAbY4a95LWjKa1vG2_kcYSAG_g', $scriptBody);

    return $result;
} catch (Exception $exception) {
    echo $exception->getMessage();
}

Ловлю ошибку такого формата. В документации ничего не нашел. Чтоб бы это могло быть?

{  
   "error":{  
      "code":400,
      "message":"Request contains an invalid argument.",
      "errors":[  
         {  
            "message":"Request contains an invalid argument.",
            "domain":"global",
            "reason":"badRequest"
         }
      ],
      "status":"INVALID_ARGUMENT"
   }
}

Скрипт рабочий, если запустить ручками, то тестовый файл создается

function myFunction() {
  var doc = DocumentApp.create('TEST');
  var docFile = DriveApp.getFileById(doc.getId());
  DriveApp
    .getFolderById('0B4tpfK4Y0ag7RF9reUtRVkhYNkU')
    .addFile(docFile);
}

Кто-то может поделится рабочим примером вызова скрипта из сервера?

Также смущает что ScriptId если взять из File -> Project Properties, как советуют в документации то возвращает

{  
   "error":{  
      "code":404,
      "message":"Requested entity was not found.",
      "errors":[  
         {  
            "message":"Requested entity was not found.",
            "domain":"global",
            "reason":"notFound"
         }
      ],
      "status":"NOT_FOUND"
   }
}

Поэтому ID брал из самого скрипта

DocumentApp.getActiveDocument().getId()
READ ALSO
Сравнение скорости

Сравнение скорости

Быстрее ли этот вариант?

300
MVC и заголовок

MVC и заголовок

Доброго времени сутокРешил разобраться с MVC и тому подобному

188
Работа с input type=&ldquo;date&rdquo;

Работа с input type=“date”

Создаю админ-панель и столкнулся с проблемой при реализации редактирования статьиЕсть инпут с типом даты, в него нужно засунуть хотя бы дд

226
ajax не передает данные методом post?

ajax не передает данные методом post?

Не понимаю, почему не передаются данные методом post через ajax-запрос, до серверной части скрипт доходит и php файл срабатывает, однако данные...

400