2016-06-08 3 views
1

간단한 Google 스크립트를 작성하여 스프레드 시트를 업데이트합니다 (Google tutorial부터). 나는이 스크립트를 Python 코드를 통해 내 컴퓨터에서 호출 할 수있는 API 실행 파일로 배포한다. 아래 요점은 그 중 요지이다.Google 스크립트 호출시 버전 번호 지정

api_id = 'xxxxxxxxxxxxxxxxxxxxxxxxx' # where do I specify the api version? 

credentials = get_credentials() 
http = credentials.authorize(httplib2.Http()) 
script_service = discovery.build('script', 'v1', http=http) 

request = {"function": "updateListenerStatus", # function name to call inside the Google script   
      "parameters": [data], # JSON argument passed to the function         
      "devMode": True} # run the most recently saved instead of published version 

response = script_service.scripts().run(body=request, scriptId=api_id).execute() 

버전 기능을 사용하고 싶다는 점을 제외하면 모든 것이 잘 작동합니다. 설명서를 읽은 후 "devMode"를 False로 변경하면 가장 최근에 저장 한 버전 대신 가장 최근에 게시 한 버전의 스크립트를 실행할 수 있습니다. 그러나 이전에 게시 된 버전을 실행하려면 어떻게해야합니까? 한 Google 스크립트를 다른 Google 스크립트로 가져올 때 라이브러리 버전을 지정하는 것에 익숙하지만 파이썬 코드에서 버전 번호를 지정할 수있는 방법이 있습니까?

답변

1

나는 매우 우아한 것은 아니지만 구현 된 해결 방법이 있습니다. 본질적으로 함수 이름의 일부로 버전 번호를 포함합니다 : myFunction_v1myFunction_v2. 나는 원본 스크립트 (MyProject_v1MyProject_v2)의 각 게시 된 버전을 가져 오는 별도의 Google 스크립트 프로젝트를 만듭니다. 내가 파이썬 클라이언트에서 함수를 호출 할 때, 내가 원하는 스크립트의 버전과 관련된 함수 이름을 사용

// Code.gs 
function myFunction_v1() { 
    MyProject_v1.myFunction() 
} 

function myFunction_v2() { 
    MyProject_v2.myFunction() 
} 

function myFunction_v3() { 
    MyProject_v3.myFunction() 
} 

: 나는 다음 함수가 올바른 릴리스 버전에 대한 호출 경로에 새로운 스크립트 프로젝트를 사용 운영.

1

이 기능은 아직 포함되지 않은 것으로 보입니다. devMode을 true로 설정하면 가장 최근에 저장된 버전에서 스크립트가 실행되므로 실행하고 저장하려는 버전을 편집하지 않는 것이 좋습니다. 어떤 영향을 미치지 않는 몇 가지 코멘트를 편집 한 다음 저장하십시오. (최근에 저장되었으므로) 원하는 스크립트 버전이 실행됩니다.

+0

필자는 원하는 스크립트를 직접 실행할 수는 있지만 필자는 동시에 여러 버전을 지원할 수 있기를 바랍니다. 이 도구는 많은 엔지니어들에 의해 사용 될 것이므로 스크립트 또는 클라이언트를 이전 버전과 호환되도록 변경하고 싶습니다. 어쩌면 Google 스크립트로이를 수행 할 방법이 없을 수도 있습니다. – david11