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