API ภายนอก

สคริปต์ของ Google Apps สามารถโต้ตอบกับ 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 และส่งข้อมูลเข้าสู่ระบบไปพร้อมกับคำขอ

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