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 ל-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.