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