Выполнить скрипт Google Apps с помощью скрипта ruby ​​(`check_status ': notFound: запрошенная сущность не найдена. (Google :: Apis :: ClientError) - PullRequest
0 голосов
/ 22 апреля 2019

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

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

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)

Буду признателен за любую помощь в отладке.

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