Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Curso de Google Formulários - #14 Inserindo Dados na Planilha

30/11/2020

Nesse tutorial nós vamos trabalhar a fundo com a API do Google Planilhas realizando a inserção dos dados preenchidos no formulário diretamente na nossa planilha do Google.

API do Google Spreadsheet - PHP

O site de referência da API é o site do Google Planilhas.

Precisaremos antes de mais nada instalar a nossa lib do Google Planilhas através do terminal utilizando o Composer:

cd c:/wamp64/www/lib
composer require google/apiclient:^2.0

class/ClassClient.php

Essa classe será responsável por definir os dados do usuário no Google:

<?php
namespace Classes;

class ClassClient
{
    private $http;
    private $client;

    #Get Client
    public function getClient()
    {
        $this->http=new \GuzzleHttp\Client(["verify"=>false]);
        $this->client = new \Google_Client();
        $this->client->setHttpClient($this->http);
        $this->client->setApplicationName('Google Forms API');
        $this->client->setScopes(\Google_Service_Drive::DRIVE);
        $this->client->setAuthConfig('../lib/credentials.json');
        $this->client->setAccessType('offline');
        return $this->client;
    }
}

class/ClassSpreadsheet.php

Essa classe ficará responsável pelas operações de CRUD (Create, read, update e delete)

<?php
namespace Classes;

class ClassSpreadsheet extends ClassClient
{
    private $service;

    public function __construct()
    {
        $this->service=new \Google_Service_Sheets($this->getClient());
    }

    #Inserção de dados na planilha
    public function insertSheet($spreadsheetId, $range, $values)
    {
        $body = new \Google_Service_Sheets_ValueRange(['values' => [$values]]);
        $params = ['valueInputOption' => 'RAW'];
        $result = $this->service->spreadsheets_values->append($spreadsheetId, $range, $body, $params);
    }
}

controllers/FormController.php

Esse arquivo receberá as variáveis e chamará os métodos da ClassSpreadsheet:

<?php
include ("../lib/vendor/autoload.php");
$nome=filter_input(INPUT_POST,'nome',FILTER_DEFAULT);
$genero=filter_input(INPUT_POST,'genero',FILTER_DEFAULT);
$comentario=filter_input(INPUT_POST,'comentario',FILTER_DEFAULT);
$preferencia="";
foreach ($_POST['preferencia'] as $options){
    $preferencia.=$options.' - ';
}
$spreadsheet=new \Classes\ClassSpreadsheet();
$spreadsheet->insertSheet(
"ID_DA_SUA_PLANILHA",
        "Dados!A1",
                [
                    $nome,
                    $genero,
                    $preferencia,
                    $comentario
                ]
);
echo "Os dados foram inseridos na planilha!";

Não esqueça de compartilhar a sua planilha como pública para todos editarem.

lib/composer.json

No arquivo de configuração do composer vamos setar os namespaces do autoload do nosso projeto:

"autoload":{
    "psr-4":{
        "Classes\\":"../class"
    }
}

Resolvendo o problema de count()

Para resolver esse problema basta procurar o arquivo CurlFactory.php no seu projeto (lib/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php) e substituir a seguinte linha:

if (($this->handles?count($this->handles):0) >= $this->maxHandles) {
    curl_close($resource);
}

Por hoje é só! Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Curso de Google Formulários - #13 Formulário Personalizado
Nesse tutorial vamos trabalhar com formulário html que será responsável pela entrada de dados do usuário. Vamos utilizar as classes do Bootstrap.
Saiba mais!
Curso de Google Formulários - #15 Validações, Máscaras e Ajax
Nesse tutorial nós trabalharemos com máscaras, validações avançadas e ajax utilizando a API do Google Formulários.
Saiba mais!
Google Forms
Esse é o curso de Google Forms. Aqui você aprenderá a criar desde um formulário básico até um formulário usando API.
Saiba mais!