إعداد مشروع برمجة التطبيقات

إنّ إعداد مشروع "برمجة تطبيقات Google" لاستدعاء واجهة برمجة تطبيقات "نماذج Google" مباشرةً من خلال طلب ReST هو إجراء بسيط. بافتراض أنك قد ضبطت مشروع Google Cloud، نفِّذ ما يلي:

  1. إنشاء مشروع جديد لبرمجة التطبيقات
  2. يمكنك تغيير رقم مشروع Google Cloud المرتبط به ليتطابق مع المشروع الذي تم تفعيله لواجهة برمجة تطبيقات "نماذج Google".
  3. عليك تعديل ملف البيان (appsscript.json) لإضافة نطاقات OAuth اللازمة.
  4. يمكنك إضافة رمز "برمجة تطبيقات Google" لجلب رمز OAuth المميز وإجراء طلب REST باستخدام الرمز.

إليك جولة تفصيلية سريعة حول هذه الخطوات.

إنشاء مشروع جديد لبرمجة التطبيقات وضبطه

  1. باستخدام رقم تعريف Google نفسه الذي تم استخدامه لضبط مشروع Google Cloud Platform، انتقِل إلى لوحة بيانات "برمجة التطبيقات"، ثم انقر على مشروع جديد.
  2. بعد فتح مشروعك، انقر على إعدادات المشروع.
  3. ضَع علامة في مربّع الاختيار عرض ملف البيان "appsscript.json" في المحرِّر.
  4. في قسم مشروع Google Cloud Platform (GCP)، انقر على تغيير المشروع وأدخِل رقم مشروع Google Cloud Platform الذي ضبطته لواجهة برمجة التطبيقات Forms API.

تم الآن إعداد مشروع "برمجة تطبيقات Google" للوصول إلى واجهة برمجة تطبيقات "نماذج Google". الخطوة التالية المطلوبة هي إضافة نطاقات OAuth المناسبة.

إضافة نطاقات OAuth

لإنشاء رمز OAuth مميز ذي نطاق مناسب في لغة "برمجة تطبيقات Google"، يجب ضبط النطاقات المطلوبة في ملف بيان المشروع.

  1. في المحرِّر، افتح appsscript.json.
  2. أضِف النطاقات إلى نص البيان.

    {
      ...
    "oauthScopes": [
        "https://www.googleapis.com/auth/script.external_request",
        "https://www.googleapis.com/auth/drive",
        "https://www.googleapis.com/auth/drive.readonly",
        "https://www.googleapis.com/auth/forms.body",
        "https://www.googleapis.com/auth/forms.body.readonly",
        "https://www.googleapis.com/auth/forms.responses.readonly"
      ],
     ...
     }
    
  3. انقر على حفظ المشروع وصحّح أي أخطاء في البنية إذا لزم الأمر. من المفترض أن يتمكن مشروعك الآن من استدعاء واجهة برمجة تطبيقات نماذج Google عبر استدعاء REST.

إضافة رمز "برمجة تطبيقات Google" لطلب بيانات من واجهة برمجة التطبيقات

قبل كتابة الرمز لاستدعاء نموذج، يجب عليك تحديد نموذج تملكه يحتوي على ردود وتدوين معرّف النموذج الخاص به. يمكنك العثور على رقم تعريف النموذج في عنوان URL عند تعديل النموذج:

https://docs.google.com/forms/d/<FORM_ID>/edit

لطلب واجهة برمجة التطبيقات، ستستخدِم طلب برمجة التطبيقات UrlFetchApp.

  1. افتح Code.gs وأضِف الرمز التالي:

    form-api/snippets/retrieve_all_responses.gs
     function callFormsAPI() {
      console.log('Calling the Forms API!');
      var formId = '<YOUR_FORM_ID>';
    
      // Get OAuth Token
     var OAuthToken = ScriptApp.getOAuthToken();
     console.log('OAuth token is: ' + OAuthToken);
     var formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses';
     console.log('formsAPIUrl is: ' + formsAPIUrl);
     var options = {
        'headers': {
          Authorization: 'Bearer ' + OAuthToken,
          Accept: 'application/json'
        },
        'method': 'get'
      };  
    var response = UrlFetchApp.fetch(formsAPIUrl, options);
     console.log('Response from forms.responses was: ' + response);
    }
  2. استبدِل YOUR_FORM_ID بالقيمة التي ذكرتها سابقًا.

    مثال: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. انقر على حفظ المشروع وصحِّح أي أخطاء في البنية إذا لزم الأمر.

اختبار الرمز

  1. انقر على تشغيل.
  2. امنح الإذن بالمشروع حسب الحاجة باستخدام معرّف Google نفسه كما في السابق.

بعد بدئها، من المفترض أن يظهر لك رد في سجلّ التنفيذ على النحو التالي:

Execution started
Calling the Forms API!
OAuth token is: ya29.a0ARrdaM8IMjtlv…
formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses
Response from Forms.responses was: {
"responses": [
    {
      "responseId":"...",
      "createTime": "2021-03-25T01:23:58.146Z",
      "lastSubmittedTime": "2021-03-25T01:23:58.146607Z",
      "answers": {
        "1e9b0ead": {
          "questionId": "1e9b0ead",
          "textAnswers": {
            "answers": [
              {
                "value": "Red"
              }
            ]
          }
        },
        "773ed8f3": {
          "questionId": "773ed8f3",
          "textAnswers": {
            "answers": [
              {
                "value": "Tesla"
              }
            ]
          }
        }
      }
    }
  ]
}
Execution completed

الخطوات التالية

بعد طلب واجهة برمجة التطبيقات بنجاح باستخدام "برمجة التطبيقات"، يمكنك الرجوع إلى المستندات المرجعية وتجربة إجراء استدعاءات أخرى لواجهة برمجة التطبيقات.