Выполнить скрипт Google Apps через скрипт ruby ​​(`check_status ': notFound: запрошенный объект не найден. (Google :: Apis :: ClientError)

У меня есть скрипт приложений Google, который запускает макрос для выполнения действий в моем листе Google. Я хочу, чтобы мой скрипт Ruby выполнял макрос в листе Google.

При попытке выполнить возникают проблемы с аутентификацией. сценарий. Я использовал рубиновый быстрый запуск ниже.

https://developers.google.com/apps-script/api/quickstart/ruby

и все работает нормально, но открывается фирменное приложение, потому что это то, что делает скрипт. Я изменил его, чтобы настроить таргетинг на другой мой скрипт, который отображается в том же списке на веб-странице Google. Я уже пробовал это ниже

https://developers.google.com/apps-script/api/how-tos/execute

Каждый раз, когда я запускаю его, я получаю эту ошибку `check_status': notFound: Requested entity was not found. (Google::Apis::ClientError)

Вот мой код

require 'googleauth'
require 'googleauth/stores/file_token_store'
require 'fileutils'

OOB_URI = 'urn:ietf:wg:oauth:2.0:oob'.freeze
APPLICATION_NAME = 'KPI Macros'.freeze
CREDENTIALS_PATH = 'credentials.json'.freeze
# The file token.yaml stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
TOKEN_PATH = 'token.yaml'.freeze
SCOPE = 'https://www.googleapis.com/auth/spreadsheets.currentonly'.freeze

# Ensure valid credentials, either by restoring from the saved credentials
# files or intitiating an OAuth2 authorization. If authorization is required,
# the user's default browser will be launched to approve the request.
#
# @return [Google::Auth::UserRefreshCredentials] OAuth2 credentials
def authorize
  client_id = Google::Auth::ClientId.from_file(CREDENTIALS_PATH)
  token_store = Google::Auth::Stores::FileTokenStore.new(file: TOKEN_PATH)
  authorizer = Google::Auth::UserAuthorizer.new(client_id, SCOPE, token_store)
  user_id = 'default'
  credentials = authorizer.get_credentials(user_id)
  print(credentials)
  if credentials.nil?
    url = authorizer.get_authorization_url(base_url: OOB_URI)
    puts 'Open the following URL in the browser and enter the ' \
         "resulting code after authorization:\n" + url
    code = gets
    credentials = authorizer.get_and_store_credentials_from_code(
      user_id: user_id, code: code, base_url: OOB_URI
    )
  end
  credentials
end

# Initialize the API
service = Google::Apis::ScriptV1::ScriptService.new
service.client_options.application_name = APPLICATION_NAME
service.authorization = authorize
script_id = 'MY SCRIPT ID HERE'

# Make the API request.
request = Google::Apis::ScriptV1::ExecutionRequest.new(
  function: 'failedTest'
)

response = service.run_script(script_id, request)
print(response)

Приветствуется любая помощь по отладке.


person plgelso    schedule 22.04.2019    source источник
comment
Возможный дубликат ошибки 404 при развертывании Скрипт Google Apps через REST API   -  person TheMaster    schedule 22.04.2019
comment
@TheMaster Я не развертываю новую версию, я просто хочу выполнить одну из функций в моем скрипте приложений. Я могу выставить новый штраф по предоставленной вами ссылке в любом случае   -  person plgelso    schedule 22.04.2019
comment
Попробуйте сохранить настройку версии devMode:true.   -  person TheMaster    schedule 22.04.2019
comment
Хотя я не уверен, такая же ситуация со мной, по моему опыту, если ошибка Requested entity was not found. возникает при запуске сценария для запроса метода scripts.run API скрипта приложений после развертывания исполняемого файла API, ошибка была удалена с помощью сохранение скриптов в проекте кнопкой сохранения. Этим отражена последняя версия. Можете ли вы попробовать сохранить скрипт проекта (Google Apps Script) и запустить его снова? Если это не было прямым решением вашей проблемы, прошу прощения.   -  person Tanaike    schedule 23.04.2019