Configurar um projeto do Apps Script

É muito simples configurar um projeto do Apps Script para chamar a API Google Forms diretamente por uma chamada REST. Supondo que você já tenha configurado um projeto do Google Cloud, faça o seguinte:

  1. Crie um novo projeto do Apps Script.
  2. Altere o número do projeto associado do Google Cloud para que corresponda ao projeto que você ativou para a API Google Forms.
  3. Edite o arquivo de manifesto (appsscript.json) para adicionar os escopos OAuth necessários.
  4. Adicione o código do Apps Script para buscar um token OAuth e fazer uma chamada REST usando o token.

Veja a seguir um breve tutorial dessas etapas.

Criar e configurar um novo projeto do Apps Script

  1. Com o mesmo ID do Google usado para configurar o projeto do GCP, acesse o Painel do Apps Script e clique em Novo projeto.
  2. Assim que seu projeto estiver aberto, clique em Configurações do projeto.
  3. Selecione a caixa de seleção Mostrar arquivo de manifesto "appsscript.json" no editor.
  4. Na seção Projeto do Google Cloud Platform (GCP), clique em Alterar projeto e insira o número do projeto do GCP que você configurou para a API Forms.

Agora seu projeto do Apps Script está configurado para acessar a API Google Forms. A próxima etapa necessária é adicionar os escopos OAuth adequados.

Adicionar escopos OAuth

Para gerar um token OAuth com escopo correto no Apps Script, você precisa definir os escopos necessários no arquivo de manifesto do projeto.

  1. No editor, abra appsscript.json.
  2. Adicione os escopos ao corpo do manifesto.

    {
      ...
    "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. Clique em Salvar projeto e corrija os erros de sintaxe, se necessário. Agora seu projeto pode chamar a API Google Forms com uma chamada REST.

Adicionar o código do Apps Script para chamar a API

Antes de escrever o código para chamar um formulário, você precisa identificar um formulário seu com respostas e anotar o ID dele. O código pode ser encontrado no URL ao editar o formulário:

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

Para chamar a API, você usará uma chamada UrlFetchApp do Apps Script.

  1. Abra o arquivo Code.gs e adicione o seguinte código:

    formulários-api/snippets/recovery_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. Substitua YOUR_FORM_ID pelo valor que você anotou anteriormente.

    Exemplo: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Clique em Salvar projeto e corrija os erros de sintaxe, se necessário.

Testar o código

  1. Clique em Executar.
  2. Autorize o projeto conforme necessário usando o mesmo ID do Google de antes.

Depois de iniciado, você verá uma resposta no Registro de execução semelhante a esta:

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

Próximas etapas

Depois de chamar a API com o Apps Script, consulte a documentação de referência e tente fazer outras chamadas para a API.