Как запустить функцию Google App Script из Google OAuth 2.0 Playground | У звонящего нет разрешения - PullRequest
0 голосов
/ 26 октября 2018

Я создал новый скрипт, который создает «форму Google» в моей учетной записи Google.Ниже приведен пример кода: enter image description here

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» enter image description here

Теперь, если я выполню код непосредственно из Google App Script, он будет отлично работать, и форма также будет создана.

Теперь Я столкнулся с проблемой при выполнении кода изGoogle OAuth 2.0 Playground .Для этого я выполнил следующие шаги:

  1. Посетите https://console.developers.google.com и создайте новый проект
  2. В меню слева выберите «Библиотека»
  3. В библиотеке скриптов приложений найдите «API скриптов приложений» и включите его enter image description here

  4. Далее перейдите в меню учетных данныхи нажмите «Создать учетные данные»> Идентификатор клиента OAuth enter image description here

  5. На следующем экране выберите Веб-приложение

  6. Введите имя нового веб-приложения

  7. В наборе «Разрешенные источники JavaScript» http://localhost"

  8. В наборе «Разрешенные URI перенаправления»https://developers.google.com/oauthplayground", так как в настоящее время нам потребуется ответ об аутентификации на игровой площадке Google OAuth.И нажмите «Создать».

  9. В случае успеха вы получите «Идентификатор клиента» и «Секрет клиента» своей учетной записи, которые вы будете предоставлять в Google OAuth Playground для аутентификации других пользователей.приложение.enter image description here

  10. Теперь посетите https://developers.google.com/oauthplayground и нажмите на Механизм настроек.В раскрывающемся меню установите флажок «Использовать свои собственные учетные данные OAuth» и введите «Идентификатор клиента OAuth» и «Секрет клиента OAuth», полученные на шаге 9 enter image description here

  11. Далее, в разделе «Шаг 1, выберите и авторизуйте API», выберите «Apps Script API v1», далее выберите «https://www.googleapis.com/auth/forms"» и нажмите «Авторизовать» enter image description here

  12. Далее будет запрошена авторизация учетной записи, для которой вы хотите получить доступ к выбранной области. В этом я использую ту же учетную запись, для которой используется «Сценарий приложения» для созданияКод создается и тот же, из которого генерируются «Идентификатор клиента» и «Секрет клиента». enter image description here

enter image description here

Вышеуказанный шаг сгенерирует «Код авторизации», и далее вы можете сгенерировать «Токен обновления» и «Токен доступа».enter image description here

Далее мы должны использовать службы для выполнения кода скрипта приложения Google.Нажмите «Список возможных операций», а затем выберите «Выполнить сценарии» enter image description here

Затем будет сгенерирован синтаксис с запросом идентификатора скрипта, который вы можете найти в проекте скрипта приложения Google.Для этого в проекте Google App Script нажмите «Файл»> «Свойства проекта», и, наконец, откроется всплывающее окно, содержащее идентификатор скрипта enter image description here

enter image description here

enter image description here

Введите идентификатор скрипта в PlayGround, а затем установите тело запроса, нажав кнопку «Ввести тело запроса».Чтобы понять параметры тела запроса, обратитесь к документу https://developers.google.com/apps-script/api/reference/rest/v1/scripts/run

enter image description here

enter image description here

Теперь нажмите на «Отправить запрос»

После выполнения всех вышеперечисленных шагов мы получаем следующую ошибку аутентификации:

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
  }
}

enter image description here

Спасибо за решение заранее.

1 Ответ

0 голосов
/ 28 октября 2018

Чтобы решить эту проблему, вам нужно создать учетные данные проекта, который вы создали в скрипте приложения, а не создавать новый проект в консоли Google.Поэтому пропустите шаг 1, упомянутый в вопросе, в котором говорится:

  1. Посетите https://console.developers.google.com и создайте новый проект

И откройте проект App Script.В текущем случае проект «Тестировать Google Form API Personal»

enter image description here

Далее откройте проект как «Облачный проект», нажав наМеню параметров из трех точек, а затем выберите «Облачный проект»

enter image description here

Теперь откроется экран консоли Google.Создайте учетные данные OAuth для открытого проекта.

enter image description here

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