การตั้งค่าโปรเจ็กต์ Apps Script เพื่อเรียกใช้ Google Forms API โดยตรงผ่าน การเรียก REST นั้นทำได้ง่าย หากคุณได้กำหนดค่าโปรเจ็กต์ Google Cloud แล้ว ให้ทำดังนี้
- สร้างโปรเจ็กต์ Apps Script ใหม่
- เปลี่ยนหมายเลขโปรเจ็กต์ Google Cloud ที่เชื่อมโยงให้ตรงกับโปรเจ็กต์ที่คุณ เปิดใช้สำหรับ Google Forms API
- แก้ไขไฟล์ Manifest (
appsscript.json
) เพื่อเพิ่มขอบเขต OAuth ที่จำเป็น - เพิ่มโค้ด Apps Script เพื่อดึงโทเค็น OAuth และทำการเรียก REST โดยใช้โทเค็น
ดูคำแนะนำโดยย่อเกี่ยวกับขั้นตอนเหล่านี้ได้ที่นี่
สร้างและกำหนดค่าโปรเจ็กต์ Apps Script ใหม่
- ใช้ Google ID เดียวกับที่ใช้กำหนดค่าโปรเจ็กต์ GCP ไปที่แดชบอร์ด Apps Script แล้วคลิกโปรเจ็กต์ใหม่
- เมื่อเปิดโปรเจ็กต์แล้ว ให้คลิก การตั้งค่าโปรเจ็กต์
- เลือกช่องทําเครื่องหมายแสดงไฟล์ Manifest "appsscript.json" ในเครื่องมือแก้ไข
- ในส่วนโปรเจ็กต์ Google Cloud Platform (GCP) ให้คลิกเปลี่ยนโปรเจ็กต์ แล้วป้อนหมายเลขโปรเจ็กต์ GCP ที่คุณกำหนดค่าสำหรับ Forms API
ตอนนี้ระบบได้กำหนดค่าโปรเจ็กต์ Apps Script ให้เข้าถึง Google Forms API แล้ว ขั้นตอนถัดไปที่จำเป็นคือการเพิ่มขอบเขต 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" ], ... }
คลิก
บันทึกโปรเจ็กต์และแก้ไข ข้อผิดพลาดทางไวยากรณ์หากจำเป็น ตอนนี้โปรเจ็กต์ของคุณควรจะเรียกใช้ Google Forms API ผ่านการเรียก 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 อื่นๆ