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: תואם ל-OAuth 1.0 ו-1.0a.
- OAuth2 עבור סקריפט של Apps: תואם ל-OAuth2.
עבודה עם 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.