API выполнения сценария приложения с учетной записью службы - HTTP 400 Неверные аргументы - PullRequest
0 голосов
/ 10 мая 2019

Я запускаю исполняемый API скрипта Google App из скрипта Python. Я делаю это с помощью служебной учетной записи, чтобы ее можно было запланировать на автоматический запуск.

Я попытался сделать это, используя свою учетную запись, и OAuth работает, открыв страницу браузера и запросив авторизацию. После авторизации скрипт выполняется. Я авторизовал области действия для учетной записи службы, как показано в приведенной ниже ссылке

https://developers.google.com/identity/protocols/OAuth2ServiceAccount

from __future__ import print_function
from googleapiclient import errors
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file as oauth_file, client, tools
from google.oauth2 import service_account
import googleapiclient.discovery
import httplib2
import json


SCRIPT_ID ='xyz'

SCOPES = ['https://www.googleapis.com/auth/documents' ,'https://www.googleapis.com/auth/forms',          'https://www.googleapis.com/auth/presentations','https://www.googleapis.com/auth/spreadsheets']

service_account_info = json.load(open('service_account_key_file.json'))

creds = service_account.Credentials.from_service_account_info(    service_account_info)

service = build('script', 'v1', credentials=creds)

request = {"function": "testExecutableSA","parameters": ["TEST RUN"]}


try:

    response = service.scripts().run(body=request,
            scriptId=SCRIPT_ID).execute()

    currentdata = response

    print(currentdata)


except errors.HttpError as e:
    # The API encountered a problem before the script started executing.
    print(e.content)response = service.scripts().run(body=request,           scriptId=SCRIPT_ID).execute()

Когда я делаю это, используя мою учетную запись, запускается сценарий, и в протокол приложения записывается тестовое сообщение, которое называется «Это« Тестовый запуск »

Когда я делаю это, используя файл учетной записи службы, я получаю сообщение об ошибке ниже

b '{\ n "ошибка": {\ n "код": 400, \ n "сообщение": "запрос содержит недопустимый аргумент.", \ N "ошибки": [\ n {\ n "сообщение ":" Запрос содержит недопустимый аргумент. ", \ N" домен ":" глобальный ", \ n" причина ":" badRequest "\ n} \ n], \ n" статус ":" INVALID_ARGUMENT "\ n} \ п} \ п '

Нет подробных сведений о недопустимом аргументе.

Только то, что изменяется, это http_authorized переданный объект.

Я совершил ошибку или что-то сломалось?

1 Ответ

1 голос
/ 10 мая 2019

Согласно официальной документации API скриптов приложений не работает с учетными записями служб.

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