การตั้งค่าโปรเจ็กต์ Apps Script เพื่อเรียกใช้ Google ฟอร์ม API โดยตรงผ่านการเรียก REST นั้นทำได้ง่าย สมมติว่าคุณได้กำหนดค่าโปรเจ็กต์ Google Cloud แล้ว ให้ดำเนินการดังต่อไปนี้
- สร้างโปรเจ็กต์ Apps Script ใหม่
- เปลี่ยนหมายเลขโปรเจ็กต์ Google Cloud ที่เชื่อมโยงให้ตรงกับโปรเจ็กต์ที่เปิดใช้สำหรับ Google ฟอร์ม API
- แก้ไขไฟล์ Manifest (
appsscript.json
) เพื่อเพิ่มขอบเขต OAuth ที่จำเป็น - เพิ่มโค้ด Apps Script เพื่อดึงข้อมูลโทเค็น OAuth และเรียก REST โดยใช้โทเค็น
ด้านล่างนี้เป็นคำแนะนำแบบคร่าวๆ เกี่ยวกับขั้นตอนเหล่านี้
สร้างและกำหนดค่าโครงการ Apps Script ใหม่
- ไปที่แดชบอร์ด Apps Script แล้วคลิกโปรเจ็กต์ใหม่โดยใช้รหัส Google เดียวกับที่คุณกำหนดค่าโปรเจ็กต์ GCP
- เมื่อโปรเจ็กต์เปิดอยู่ ให้คลิก การตั้งค่าโปรเจ็กต์
- เลือกช่องทำเครื่องหมายแสดงไฟล์ Manifest "appsscript.json" ในเครื่องมือแก้ไข
- ในส่วนโปรเจ็กต์ Google Cloud Platform (GCP) ให้คลิกเปลี่ยนโปรเจ็กต์ แล้วป้อนหมายเลขโปรเจ็กต์ GCP ที่คุณกำหนดค่าไว้สำหรับ API ของฟอร์ม
กำหนดค่าโครงการ Apps Script ของคุณเพื่อเข้าถึง API ของ Google ฟอร์มแล้ว ขั้นตอนถัดไปที่ต้องทำคือการเพิ่มขอบเขต OAuth ที่เหมาะสม
เพิ่มขอบเขต OAuth
หากต้องการสร้างโทเค็น OAuth ที่กำหนดขอบเขตอย่างเหมาะสมใน Apps Script คุณต้องตั้งค่าขอบเขตที่จำเป็นในไฟล์ Manifest ของโปรเจ็กต์
- เปิด
appsscript.json
ในเครื่องมือแก้ไข เพิ่มขอบเขตลงในเนื้อหาของไฟล์ Manifest
{ ... "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" ], ... }
คลิก
บันทึกโปรเจ็กต์และแก้ไขข้อผิดพลาดทางไวยากรณ์ หากจำเป็น ขณะนี้โปรเจ็กต์ของคุณควรเรียกใช้ API ของ Google ฟอร์มผ่านการเรียก REST ได้แล้ว
เพิ่มโค้ด Apps Script เพื่อเรียกใช้ API
ก่อนที่จะเขียนโค้ดเพื่อเรียกใช้แบบฟอร์ม คุณจะต้องระบุแบบฟอร์มที่คุณเป็นเจ้าของซึ่งมีคำตอบและจดรหัสแบบฟอร์มไว้ รหัสของแบบฟอร์มจะอยู่ใน URL เมื่อแก้ไขแบบฟอร์ม ดังนี้
https://docs.google.com/forms/d/<FORM_ID>/edit
หากต้องการเรียก API คุณจะใช้การเรียก UrlFetchApp
ของ Apps Script
เปิด Code.gs และเพิ่มโค้ดต่อไปนี้
แทนที่
YOUR_FORM_ID
ด้วยค่าที่คุณระบุไว้ก่อนหน้านี้เช่น
var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';
คลิก
บันทึกโปรเจ็กต์ และแก้ไขข้อผิดพลาดด้านไวยากรณ์ หากจำเป็น
ทดสอบโค้ด
- คลิก เรียกใช้
- ให้สิทธิ์โปรเจ็กต์ตามที่จำเป็นโดยใช้รหัส Google เดิม
เมื่อเริ่มแล้ว คุณจะเห็นการตอบกลับในบันทึกการดำเนินการที่คล้ายคลึงกับสิ่งนี้
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
ขั้นตอนถัดไป
เมื่อเรียกใช้ API ด้วย Apps Script เรียบร้อยแล้ว โปรดดูเอกสารอ้างอิงและทดลองเรียกใช้ API แบบอื่นๆ