Я запускаю исполняемый 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
переданный объект.
Я совершил ошибку или что-то сломалось?