Я создал новый скрипт, который создает «форму Google» в моей учетной записи Google.Ниже приведен пример кода:
function myFunction() {
var form = FormApp.create('New Form');
var item = form.addCheckboxItem();
item.setTitle('What condiments would you like on your hot dog?');
item.setChoices([
item.createChoice('Ketchup'),
item.createChoice('Mustard'),
item.createChoice('Relish')
]);
form.addMultipleChoiceItem()
.setTitle('Do you prefer cats or dogs?')
.setChoiceValues(['Cats','Dogs'])
.showOtherOption(true);
form.addPageBreakItem()
.setTitle('Getting to know you');
form.addDateItem()
.setTitle('When were you born?');
form.addGridItem()
.setTitle('Rate your interests')
.setRows(['Cars', 'Computers', 'Celebrities'])
.setColumns(['Boring', 'So-so', 'Interesting']);
Logger.log('Published URL: ' + form.getPublishedUrl());
Logger.log('Editor URL: ' + form.getEditUrl());
}
Затем создайте исполняемый файл API, перейдя в «Публикация> Развернуть как исполняемый файл API»
Теперь, если я выполню код непосредственно из Google App Script, он будет отлично работать, и форма также будет создана.
Теперь Я столкнулся с проблемой при выполнении кода изGoogle OAuth 2.0 Playground .Для этого я выполнил следующие шаги:
- Посетите https://console.developers.google.com и создайте новый проект
- В меню слева выберите «Библиотека»
В библиотеке скриптов приложений найдите «API скриптов приложений» и включите его
Далее перейдите в меню учетных данныхи нажмите «Создать учетные данные»> Идентификатор клиента OAuth
На следующем экране выберите Веб-приложение
Введите имя нового веб-приложения
В наборе «Разрешенные источники JavaScript» http://localhost"
В наборе «Разрешенные URI перенаправления»https://developers.google.com/oauthplayground", так как в настоящее время нам потребуется ответ об аутентификации на игровой площадке Google OAuth.И нажмите «Создать».
В случае успеха вы получите «Идентификатор клиента» и «Секрет клиента» своей учетной записи, которые вы будете предоставлять в Google OAuth Playground для аутентификации других пользователей.приложение.
Теперь посетите https://developers.google.com/oauthplayground и нажмите на Механизм настроек.В раскрывающемся меню установите флажок «Использовать свои собственные учетные данные OAuth» и введите «Идентификатор клиента OAuth» и «Секрет клиента OAuth», полученные на шаге 9
Далее, в разделе «Шаг 1, выберите и авторизуйте API», выберите «Apps Script API v1», далее выберите «https://www.googleapis.com/auth/forms"» и нажмите «Авторизовать»
Далее будет запрошена авторизация учетной записи, для которой вы хотите получить доступ к выбранной области. В этом я использую ту же учетную запись, для которой используется «Сценарий приложения» для созданияКод создается и тот же, из которого генерируются «Идентификатор клиента» и «Секрет клиента».
Вышеуказанный шаг сгенерирует «Код авторизации», и далее вы можете сгенерировать «Токен обновления» и «Токен доступа».
Далее мы должны использовать службы для выполнения кода скрипта приложения Google.Нажмите «Список возможных операций», а затем выберите «Выполнить сценарии»
Затем будет сгенерирован синтаксис с запросом идентификатора скрипта, который вы можете найти в проекте скрипта приложения Google.Для этого в проекте Google App Script нажмите «Файл»> «Свойства проекта», и, наконец, откроется всплывающее окно, содержащее идентификатор скрипта
Введите идентификатор скрипта в PlayGround, а затем установите тело запроса, нажав кнопку «Ввести тело запроса».Чтобы понять параметры тела запроса, обратитесь к документу
https://developers.google.com/apps-script/api/reference/rest/v1/scripts/run
Теперь нажмите на «Отправить запрос»
После выполнения всех вышеперечисленных шагов мы получаем следующую ошибку аутентификации:
POST /v1/scripts/{ScriptId}:run HTTP/1.1
Host: script.googleapis.com
Content-length: 95
Content-type: application/json
Authorization: Bearer {your authentication}
{
"function": "myFunction",
"parameters": [],
"sessionState": "Test",
"devMode": true
}
HTTP/1.1 403 Forbidden
Content-length: 126
X-xss-protection: 1; mode=block
X-content-type-options: nosniff
Transfer-encoding: chunked
Vary: Origin, X-Origin, Referer
Server: ESF
-content-encoding: gzip
Cache-control: private
Date: Fri, 26 Oct 2018 13:44:57 GMT
X-frame-options: SAMEORIGIN
Alt-svc: quic=":443"; ma=2592000; v="44,43,39,35"
Content-type: application/json; charset=UTF-8
{
"error": {
"status": "PERMISSION_DENIED",
"message": "The caller does not have permission",
"code": 403
}
}
Спасибо за решение заранее.