הגדרת פרויקט ב-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, ולוחצים על פרויקט חדש.
  2. אחרי שפותחים את הפרויקט, לוחצים על Project Settings (הגדרות הפרויקט).
  3. מסמנים את התיבה הצגת קובץ המניפסט '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. לוחצים על שמירת הפרויקט ומתקנים שגיאות תחביר אם צריך. מעכשיו הפרויקט יכול להפעיל את Google 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.