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

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

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

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

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

פרויקט Apps Script שלכם מוגדר עכשיו לגישה ל-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 (שמירת הפרויקט) ומתקנים שגיאות תחביר אם יש כאלה. עכשיו הפרויקט שלכם יכול לקרוא ל-Forms API באמצעות קריאת REST.

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

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

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

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

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

    forms-api/snippets/retrieve_all_responses.gs
    function callFormsAPI() {
      console.log("Calling the Forms API!");
      const formId = "<YOUR_FORM_ID>";
    
      // Get OAuth Token
      const OAuthToken = ScriptApp.getOAuthToken();
      console.log(`OAuth token is: ${OAuthToken}`);
    
      const formsAPIUrl = `https://forms.googleapis.com/v1/forms/${formId}/responses`;
      console.log(`formsAPIUrl is: ${formsAPIUrl}`);
    
      const options = {
        headers: {
          Authorization: `Bearer ${OAuthToken}`,
          Accept: "application/json",
        },
        method: "get",
      };
    
      const 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

השלבים הבאים

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