REST 호출을 통해 Google Forms API를 직접 호출하도록 Apps Script 프로젝트를 설정하는 것은 간단합니다. Google Cloud 프로젝트를 이미 구성했다고 가정하고 다음 단계를 따르세요.
- 새 Apps Script 프로젝트를 만듭니다.
- 연결된 Google Cloud 프로젝트 번호를 Google Forms API에 사용 설정한 프로젝트와 일치하도록 변경합니다.
- 매니페스트 파일 (
appsscript.json
)을 수정하여 필요한 OAuth 범위를 추가합니다. - OAuth 토큰을 가져오고 해당 토큰을 사용하여 REST를 호출하는 Apps Script 코드를 추가합니다.
다음은 이 단계를 간단히 안내한 내용입니다.
새 Apps Script 프로젝트 만들기 및 구성
- GCP 프로젝트를 구성할 때 사용한 것과 동일한 Google ID를 사용하여 Apps Script 대시보드로 이동한 다음 새 프로젝트를 클릭합니다.
- 프로젝트가 열리면 프로젝트 설정을 클릭합니다.
- 편집기에 'appsscript.json' 매니페스트 파일 표시 체크박스를 선택합니다.
- Google Cloud Platform (GCP) 프로젝트 섹션에서 프로젝트 변경을 클릭하고 Forms API에 구성한 GCP 프로젝트 번호를 입력합니다.
이제 Google Forms API에 액세스하도록 Apps Script 프로젝트가 구성되었습니다. 다음 필수 단계는 적절한 OAuth 범위를 추가하는 것입니다.
OAuth 범위 추가
Apps Script에서 올바른 범위의 OAuth 토큰을 생성하려면 프로젝트의 매니페스트 파일에 필요한 범위를 설정해야 합니다.
- 편집기에서
appsscript.json
를 엽니다. 매니페스트 본문에 범위를 추가합니다.
{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/forms.body", "https://www.googleapis.com/auth/forms.body.readonly", "https://www.googleapis.com/auth/forms.responses.readonly" ], ... }
Save project(프로젝트 저장)를 클릭하고 필요한 경우 구문 오류를 수정합니다. 이제 프로젝트에서 REST 호출을 통해 Google Forms API를 호출할 수 있습니다.
API를 호출하는 Apps Script 코드 추가
양식을 호출하는 코드를 작성하기 전에 응답이 있는 소유한 양식을 식별하고 양식 ID를 기록해야 합니다. 양식 ID는 양식을 수정할 때 URL에서 확인할 수 있습니다.
https://docs.google.com/forms/d/<FORM_ID>/edit
API를 호출하려면 Apps Script UrlFetchApp
호출을 사용합니다.
Code.gs를 열고 다음 코드를 추가합니다.
YOUR_FORM_ID
를 앞에서 기록해 둔 값으로 바꿉니다.예:
var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';
Save project를 클릭하고 필요한 경우 구문 오류를 수정합니다.
코드 테스트
- 실행을 클릭합니다.
- 이전과 동일한 Google ID를 사용하여 필요에 따라 프로젝트를 승인합니다.
시작되면 실행 로그에 다음과 유사한 응답이 표시됩니다.
Execution started Calling the Forms API! OAuth token is: ya29.a0ARrdaM8IMjtlv… formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses Response from Forms.responses was: { "responses": [ { "responseId":"...", "createTime": "2021-03-25T01:23:58.146Z", "lastSubmittedTime": "2021-03-25T01:23:58.146607Z", "answers": { "1e9b0ead": { "questionId": "1e9b0ead", "textAnswers": { "answers": [ { "value": "Red" } ] } }, "773ed8f3": { "questionId": "773ed8f3", "textAnswers": { "answers": [ { "value": "Tesla" } ] } } } } ] } Execution completed
다음 단계
Apps Script로 API를 성공적으로 호출한 후 참조 문서를 참고하고 API를 다른 방식으로 호출해 보세요.