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
ทำงานกับ 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.