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 ולשלוח את פרטי הכניסה עם הבקשות:
- OAuth1 ל-Apps Script: תואם ל-OAuth 1.0 ו-1.0a.
- OAuth2 for Apps Script: תואם ל-OAuth2.
עבודה עם JSON
העבודה עם אובייקטים מסוג JSON דומה לעבודה עם XML, מלבד העובדה שקל יותר לנתח או לבצע קידוד של אובייקט JSON.
אם ה-API המבוקש מחזיר תגובה גולמית בפורמט JSON לבקשה, אפשר לגשת לתגובה של מחרוזת ה-JSON באמצעות ה-method 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.