ממשקי 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 באמצעות ה-method HTTPResponse.getContentText().

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

כששולחים בקשות XML ל-API, צריך ליצור את ה-XML לשליחה באמצעות ה-methods 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.