Apps Komut Dosyası projesi oluşturun

Google Formlar API'sini doğrudan bir REST çağrısı aracılığıyla çağırmak için Apps Komut Dosyası projesi oluşturmak kolaydır. Bir Google Cloud projesi yapılandırdığınızı varsayarak aşağıdakileri yapın:

  1. Yeni bir Apps Komut Dosyası projesi oluşturun.
  2. İlişkili Google Cloud proje numarasını, Google Formlar API'si için etkinleştirdiğiniz projeyle eşleşecek şekilde değiştirin.
  3. Gerekli OAuth kapsamlarını eklemek için Manifest dosyasını (appsscript.json) düzenleyin.
  4. OAuth jetonu getirmek ve jetonu kullanarak REST çağrısı yapmak için Apps Komut Dosyası kodu ekleyin.

Bu adımların kısa bir özetini aşağıda bulabilirsiniz.

Yeni bir Apps Komut Dosyası projesi oluşturma ve yapılandırma

  1. GCP projenizi yapılandırdığınız Google kimliğini kullanarak Apps Komut Dosyası Kontrol Paneli'ne gidin ve Yeni proje'yi tıklayın.
  2. Projeniz açıldıktan sonra Proje Ayarları'nı tıklayın.
  3. "appsscript.json" manifest dosyasını düzenleyicide göster onay kutusunu işaretleyin.
  4. Google Cloud Platform (GCP) Projesi bölümünde Projeyi değiştir'i tıklayın ve Formlar API'si için yapılandırdığınız GCP proje numarasını girin.

Apps Script projeniz artık Google Forms API'ye erişecek şekilde yapılandırılmıştır. Bir sonraki zorunlu adım, uygun OAuth kapsamlarını eklemektir.

OAuth kapsamları ekleme

Apps Komut Dosyası'nda uygun kapsamlı bir OAuth jetonu oluşturmak için projenin manifest dosyasında gerekli kapsamları ayarlamanız gerekir.

  1. Düzenleyicide appsscript.json öğesini açın.
  2. Kapsamları manifestin gövdesine ekleyin.

    {
      ...
    "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. Projeyi kaydet'i tıklayın ve gerekirse söz dizimi hatalarını düzeltin. Projeniz artık REST çağrısı aracılığıyla Google Formlar API'sini çağırabilir.

API'yi çağırmak için Apps Komut Dosyası kodu ekleme

Bir formu çağırmak için kodu yazmadan önce, yanıtları olan ve size ait bir formu belirlemeniz ve form kimliğini not etmeniz gerekir. Form kimliği, formu düzenlerken URL'de bulunabilir:

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

API'yi çağırmak için bir Apps Komut Dosyası UrlFetchApp çağrısı kullanırsınız.

  1. Code.gs dosyasını açıp aşağıdaki kodu ekleyin:

    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 değerini, daha önce not ettiğiniz değerle değiştirin.

    Örnek: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Projeyi kaydet'i tıklayın ve gerekirse söz dizimi hatalarını düzeltin.

Kodu test etme

  1. Çalıştır'ı tıklayın.
  2. Gerekirse projeyi daha önce kullandığınız Google kimliğiyle yetkilendirin.

Başladıktan sonra Execution log'da şuna benzer bir yanıt görürsünüz:

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

Sonraki adımlar

API'yi Apps Komut Dosyası ile başarıyla çağırdıktan sonra referans belgelerine göz atın ve API'ye başka çağrılar yapmayı deneyin.