הגדרת פרויקט ב-Apps Script

קל להגדיר פרויקט ב-Apps Script כדי לקרוא ל-Google Forms API ישירות באמצעות קריאת REST. בהנחה שכבר הגדרתם פרויקט ב-Google Cloud:

  1. עליך ליצור פרויקט חדש ב-Apps Script.
  2. משנים את מספר הפרויקט ב-Google Cloud המשויך למספר של הפרויקט שהפעלתם ב-Google Forms API.
  3. עורכים את קובץ המניפסט (appsscript.json) כדי להוסיף את היקף ה-OAuth הדרוש.
  4. צריך להוסיף קוד של Apps Script כדי לאחזר אסימון OAuth ולבצע קריאה ל-REST באמצעות האסימון.

הנה הדרכה מהירה על השלבים האלה.

יצירה והגדרה של פרויקט חדש ב-Apps Script

  1. תוך שימוש באותו מזהה Google שבאמצעותו הגדרתם את הפרויקט ב-GCP, נכנסים אל מרכז הבקרה של Apps Script ולוחצים על New project.
  2. כשהפרויקט פתוח, לוחצים על Project Settings (הגדרות הפרויקט).
  3. מסמנים את התיבה Show "appsscript.json" המניפסט בעורך.
  4. בקטע Google Cloud Platform (GCP) Project, לוחצים על Change Project ומזינים את מספר הפרויקט ב-GCP שהגדרתם עבור Forms API.

פרויקט Apps Script שלך מוגדר עכשיו לגישה ל-Google Forms API. השלב הבא הנדרש הוא הוספת היקפי ההרשאות המתאימים של OAuth.

הוספת היקפי הרשאות של OAuth

כדי ליצור אסימון OAuth בהיקף תקין ב-Apps Script, צריך להגדיר את ההיקפים הנדרשים בקובץ המניפסט של הפרויקט.

  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. לוחצים על Save project ומתקנים שגיאות תחביר במקרה הצורך. עכשיו אמורה להיות לפרויקט שלכם יכולת לבצע קריאה ל-Google Forms API באמצעות קריאת REST.

יש להוסיף קוד של Apps Script כדי להפעיל את ה-API

לפני שאתם כותבים את הקוד כדי לקרוא לטופס, עליכם לזהות טופס שבבעלותכם שיש לו תשובות ולרשום את מזהה הטופס שלו. תוכלו למצוא את מזהה הטופס בכתובת ה-URL כשאתם עורכים את הטופס:

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

כדי להפעיל את ה-API, יש להשתמש בקריאה ל-UrlFetchApp של Apps Script.

  1. פותחים את Code.gs ומוסיפים את הקוד הבא:

    Forms-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. לוחצים על Save project ומתקנים שגיאות תחביר במקרה הצורך.

בדיקת הקוד

  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

השלבים הבאים

אחרי שתפעילו את ה-API באמצעות Apps Script, תוכלו לעיין במסמכי התיעוד ולהתנסות בביצוע קריאות אחרות ל-API.