API ภายนอก

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 และส่งข้อมูลเข้าสู่ระบบพร้อมกับคำขอได้

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