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.