I keep getting a 404 error when trying to use the Apps Script Execution API. I've made sure that the project ID is correctly linked, and that the correct API is turned on.
This is the traceback I'm getting:
Traceback (most recent call last):
File "", line 70, in main
response = service.scripts().run(body=request, scriptId=SCRIPT_ID).execute()
File "/oauth2client/util.py", line 137, in positional_wrapper
return wrapped(*args, **kwargs)
File "apiclient/http.py", line 723, in execute
raise HttpError(resp, content, uri=self.uri)
apiclient.errors.HttpError: <HttpError 404 when requesting https://script.googleapis.com/v1/scripts/ASFDQETWRQWEFAS12341234:run?alt=json returned "Requested entity was not found.">
This is the code I'm using:
SCOPES = ['https://mail.google.com/',
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/spreadsheets']
SCRIPT_ID = 'ASFDQETWRQWEFAS12341234'
CLIENT_SECRET = '/file/path'
def get_credentials():
with open(CLIENT_SECRET, 'r') as f:
content = json.load(f)
credentials = client.SignedJwtAssertionCredentials(
content['client_email'], content['private_key'].encode(), SCOPES)
if hasattr(credentials, 'access_token'):
if (hasattr(credentials, 'access_token_expired') and
credentials.access_token_expired):
http = httplib2.Http()
credentials.refresh(http)
return credentials
def main(unused_argv):
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = build('script', 'v1', http=http)
request = {
'function': 'test',
'devMode': True
}
response = service.scripts().run(body=request, scriptId=SCRIPT_ID).execute()
if 'error' in response:
raise AppsScriptError(response['error'])
try:
assert str(response['response']['result']) == 'Success!'
except:
raise AppsScriptError('Apps Script didn\'t complete successfully.')