Google Apps Script สามารถโต้ตอบกับ API จากทั่วทั้งเว็บ คู่มือนี้จะแสดงวิธีใช้ API ประเภทต่างๆ ในสคริปต์
เชื่อมต่อกับ API สาธารณะ
คุณใช้บริการ UrlFetch
เพื่อส่งคําขอ API ได้โดยตรง
ตัวอย่างต่อไปนี้ใช้ GitHub API เพื่อค้นหาที่เก็บที่มีดาวตั้งแต่ 100 ดวงขึ้นไปซึ่งพูดถึง "สคริปต์แอป" คำขอ 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 ได้
ทำงานกับ JSON
การทำงานกับออบเจ็กต์ JSON คล้ายกับการทำงานกับ XML ยกเว้นการแยกวิเคราะห์หรือการเข้ารหัสออบเจ็กต์ JSON ซึ่งง่ายกว่ามาก
หาก API ที่ขอแสดงผล JSON ดิบสําหรับคําขอ คุณจะเข้าถึงการตอบกลับสตริง JSON ได้โดยใช้เมธอด HTTPResponse.getContentText()
เมื่อดึงสตริงนี้แล้ว ให้เรียก JSON.parse()
บนสตริงเพื่อรับการแสดงออบเจ็กต์เนทีฟ
// 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.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 ให้สร้าง XML เพื่อส่งโดยใช้เมธอด XmlService
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.