ממשקי 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 ולשלוח את פרטי הכניסה עם הבקשות:

אימות באמצעות חשבון שירות

כדי לקרוא ל-API מ-Apps Script, אפשר להשתמש באימות של חשבון שירות מהסיבות הבאות:

  • ביצועים טובים יותר עם ממשקי Google Cloud API
  • אוטומציות ומשימות לטווח ארוך
  • אבטחה משופרת (הרשאות מינימליות)
  • ניהול הרשאות גישה מרכזי

כדי להשתמש בחשבון שירות ב-Apps Script, ראו אימות כפרויקט Apps Script באמצעות חשבונות שירות.

חיבור לשירותי Google Cloud

אתם יכולים להשתמש בשיטה ScriptApp.getIdentityToken() כדי לקבל אסימון זהות של OpenID Connect (אסימון JWT‏ (JSON Web Token) או JWT) עבור המשתמש האפקטיבי. אפשר להשתמש באסימון הזה כדי לבצע אימות עם שירותי Google Cloud, כמו Cloud Run, שהוגדרו לקבל אותו.

מידע נוסף זמין במאמר בנושא התחברות לשירותי Google Cloud.

עבודה עם JSON

העבודה עם אובייקטים מסוג JSON דומה לעבודה עם XML, אבל קל יותר לנתח או לקודד אובייקט JSON.

כש-API מחזיר תגובת JSON גולמית, אפשר לגשת לתגובת מחרוזת ה-JSON באמצעות ה-method HTTPResponse.getContentText. אחרי שמקבלים את המחרוזת, משתמשים ב-JSON.parse() כדי לנתח אותה לאובייקט JavaScript.

// 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 בשביל מטען ייעודי (payload) של בקשה, משתמשים ב-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, משתמשים בשיטות XmlService כדי ליצור את ה-XML לשליחה.

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.