3

尝试使用Apps Script Execution API时,我总是收到404错误。我确定项目ID已正确链接,并且打开了正确的API。在Python中使用Apps Script Execution API时出现404错误

这是我得到了回溯:

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."> 

这是我使用的代码:

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.') 

回答

0

它看起来像你必须去到脚本项目,Publish > Deploy作为API可执行文件,并选择Who has access to the script - Anyone

相关问题