Google Apps Script สามารถโต้ตอบกับ API จากทั่วทั้งเว็บได้ ใช้ คู่มือนี้เพื่อทำงานกับ API ประเภทต่างๆ ในสคริปต์
เชื่อมต่อกับ API สาธารณะ
ใช้บริการ UrlFetch เพื่อส่งคำขอ API โดยตรง
ตัวอย่างต่อไปนี้ใช้ GitHub API เพื่อค้นหาที่เก็บที่มีดาวอย่างน้อย 100 ดวงซึ่งกล่าวถึง "Apps Script" คำขอ API นี้ไม่จำเป็นต้องมีการให้สิทธิ์หรือคีย์ API
var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
+ '?sort=stars'
+ '&q=' + encodeURIComponent(query);
var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);
ส่งคำขอไปยังบริการด้วย OAuth
API ที่ดำเนินการในนามของผู้ใช้มักต้องมีการให้สิทธิ์ ซึ่งมักใช้โปรโตคอล OAuth Apps Script ไม่รองรับโปรโตคอลนี้ในตัว แต่มีไลบรารีโอเพนซอร์สที่คุณใช้เพื่อดำเนินการโฟลว์ OAuth และส่งข้อมูลเข้าสู่ระบบพร้อมกับคำขอได้
- OAuth1 สำหรับ Apps Script: เข้ากันได้กับ OAuth 1.0 และ 1.0a
- OAuth2 สำหรับ Apps Script: เข้ากันได้กับ OAuth2
ตรวจสอบสิทธิ์โดยใช้บัญชีบริการ
หากต้องการเรียก API จาก Apps Script คุณอาจเลือกใช้การตรวจสอบสิทธิ์บัญชีบริการด้วยเหตุผลต่อไปนี้
- ประสิทธิภาพที่ดีขึ้นด้วย Google Cloud APIs
- การทำงานอัตโนมัติและงานที่ใช้เวลานาน
- การรักษาความปลอดภัยที่ดียิ่งขึ้น (สิทธิ์น้อยที่สุด)
- การจัดการการเข้าถึงแบบรวมศูนย์
หากต้องการใช้บัญชีบริการใน Apps Script โปรดดูหัวข้อตรวจสอบสิทธิ์ในฐานะโปรเจ็กต์ Apps Script โดยใช้บัญชีบริการ
เชื่อมต่อกับบริการ Google Cloud
คุณสามารถใช้เมธอด ScriptApp.getIdentityToken()
เพื่อรับโทเค็นข้อมูลประจำตัว OpenID Connect (โทเค็นเว็บ JSON
หรือ JWT) สำหรับผู้ใช้ที่มีผล คุณสามารถใช้โทเค็นนี้เพื่อตรวจสอบสิทธิ์
กับบริการของ Google Cloud เช่น Cloud Run ซึ่งได้รับการกำหนดค่าให้
ยอมรับโทเค็นนี้
โปรดดูข้อมูลเพิ่มเติมที่หัวข้อเชื่อมต่อกับบริการของ Google Cloud
ทำงานกับ JSON
การทำงานกับออบเจ็กต์ JSON จะคล้ายกับการทำงานกับ XML เพียงแต่การแยกวิเคราะห์หรือ การเข้ารหัสออบเจ็กต์ JSON นั้นง่ายกว่ามาก
เมื่อ API แสดงการตอบกลับ JSON แบบดิบ ให้เข้าถึงการตอบกลับสตริง JSON โดยใช้เมธอด HTTPResponse.getContentText
หลังจากดึงข้อมูลสตริงแล้ว ให้ใช้ JSON.parse() เพื่อแยกวิเคราะห์เป็นออบเจ็กต์ JavaScript
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
ในทำนองเดียวกัน หากต้องการแปลงออบเจ็กต์ JavaScript เป็นสตริง JSON สำหรับเพย์โหลดคำขอ ให้ใช้ JSON.stringify()
var data = {
'entry': {
'group': {
'title': 'Dog Skateboarding',
'description': 'My dog gets some serious air'
},
'keywords': 'dog, skateboard'
}
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.
แยกวิเคราะห์ XML
หาก API ภายนอกส่งคืนการตอบกลับ XML ดิบสำหรับคำขอ ให้เข้าถึง
การตอบกลับ XML โดยใช้วิธีการ
HTTPResponse.getContentText()
// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);
เมื่อส่งคำขอ XML ไปยัง API ให้ใช้เมธอด
XmlService เพื่อ
สร้าง XML ที่จะส่ง
var root = XmlService.createElement('entry')
.setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
.setAttribute('title', 'Dog Skateboarding')
.setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.