واجهات برمجة التطبيقات الخارجية

يمكن أن تتفاعل "برمجة تطبيقات Google" مع واجهات برمجة التطبيقات من جميع أنحاء الويب. يوضح هذا الدليل كيفية العمل مع أنواع مختلفة من واجهات برمجة التطبيقات في نصوصك البرمجية.

الاتصال بواجهات برمجة التطبيقات العامة

يمكنك استخدام خدمة UrlFetch لتقديم طلبات البيانات من واجهة برمجة التطبيقات مباشرةً.

يستخدم المثال التالي GitHub API للبحث عن مستودعات تضم 100 نجمة أو أكثر تتضمّن "برمجة تطبيقات Google". لا يتطلب طلب واجهة برمجة التطبيقات هذا إذنًا أو مفتاح واجهة برمجة تطبيقات.

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

عادةً ما تتطلب واجهات برمجة التطبيقات التي تعمل نيابةً عن المستخدم الحصول على تفويض، وغالبًا ما تستخدم بروتوكول OAuth. لا توفر "برمجة التطبيقات" دعمًا مضمّنًا للبروتوكول، ولكن هناك مكتبات مفتوحة المصدر يمكنك استخدامها لتنفيذ مسار OAuth وإرسال بيانات الاعتماد مع طلباتك:

العمل باستخدام JSON

يشبه العمل على كائنات JSON العمل باستخدام XML، باستثناء أنّ تحليل كائن JSON أو ترميزه أسهل بكثير.

إذا كانت واجهة برمجة التطبيقات المطلوب طلبها تعرض استجابة 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

إذا كانت واجهة برمجة التطبيقات الخارجية تعرض استجابة XML خام لأحد الطلبات، يمكنك الوصول إلى استجابة XML باستخدام الطريقة HTTPResponse.getContentText().

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

عند إرسال طلبات XML إلى واجهة برمجة تطبيقات، أنشِئ ملف 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.