Apps Komut Dosyası projesi oluşturun

Google Formlar API'sini doğrudan bir REST çağrısı üzerinden çağıracak bir Apps Komut Dosyası projesi oluşturmak kolaydır. Halihazırda 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 Forms API 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 almak ve jetonu kullanarak REST çağrısı yapmak için Apps Komut Dosyası kodu ekleyin.

Bu adımların kısa bir açıklamasını aşağıda bulabilirsiniz.

Yeni bir Apps Komut Dosyası projesi oluşturun ve yapılandırın

  1. GCP projenizi yapılandırdığınız Google kimliğini kullanarak Apps Komut Dosyası kontrol paneline gidin ve Yeni proje'yi tıklayın.
  2. Projeniz açıkken 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 Forms API 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 Script'te doğru 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ı manifest'in 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ı üzerinden Google Formlar API'yi çağırabilir.

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

Bir formu çağıracak kodu yazmadan önce, yanıtları olan ve size ait bir formu tanımlamanız ve form kimliğini not etmeniz gerekir. Form kimliğini, formu düzenlerken URL'de bulabilirsiniz:

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!');
      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 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. Önceki ile aynı Google kimliğini kullanarak projeye gerektiği gibi yetki verin.

İşlem başladığında Yürütme günlüğünde aşağıdakine 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 Script ile başarıyla çağırdıktan sonra referans dokümanlarına göz atın ve API'ye başka çağrılar yapmayı deneyin.