ממשקי 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.