Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Criar script para ler o form do Google Forms e gerar o json #5

Open
gwmoura opened this issue Apr 4, 2016 · 7 comments
Open

Criar script para ler o form do Google Forms e gerar o json #5

gwmoura opened this issue Apr 4, 2016 · 7 comments

Comments

@gwmoura
Copy link
Collaborator

gwmoura commented Apr 4, 2016

Pensei em criar um script para ler a planilha de resultados do google form ou o mais fácil um csv público e gerar o json apropriado.

  • Adicionar novas empresas caso não exista
  • Atualizar a empresa caso a mesma exista

Achei essa resposta no stackoverflow: http://stackoverflow.com/a/23394860/2891567

Podemos ser o csv público assim:

@edyonil
Copy link
Contributor

edyonil commented Apr 5, 2016

Vi esse package. Parece ser muito simples de trabalhar.
https://github.com/asimlqt/php-google-spreadsheet-client

@gwmoura
Copy link
Collaborator Author

gwmoura commented Apr 6, 2016

@edyonil dei uma olhada, ela bem interessante, podemos até manipular a planilha no google, mas acho q ler apenas um csv fica mais simples... Vou ver se consigo fazer uns testes com esse pacote.

@edyonil
Copy link
Contributor

edyonil commented Apr 9, 2016

@gwmoura, entendi sua explicação. De fato ler o CSV vai ser a melhor implementação. Só temos que pedir a @vinaocruz para liberar o form público, somente leitura.

Vou dar um Fork e vou fazer aquela ideia que te falei no evento. Vou criar um issue para isso

@gwmoura
Copy link
Collaborator Author

gwmoura commented Apr 10, 2016

;)

A ideia é rodar esse script antes dos testes

  • script
  • atualização do json atual por um novo - adicionando novas empresas caso exista e atualizando as existentes
  • executar os testes para validar o json
  • enviar atualizações

@edyonil
Copy link
Contributor

edyonil commented Apr 10, 2016

Fiz um teste com as duas opções publicados no stack @gwmoura. Ambas não conseguir ler o arquivo limpo. Usando tanto file_get_contents, como fopen e tb curl, o retorno é um monte de códigos htmls, css e javascript. Olhando um pouco mais em baixo nos comentários o cara mostrou a solução:

http://stackoverflow.com/a/23702001

Esse consigo abrir o arquivo com o fopen ou file_get_contents limpo em csv. Segue um código que estou utilizando para testar com uma planilha minha no google docs:

$spreadsheet_url="https://docs.google.com/spreadsheets/d/1xJMTHaZZJrl1Vpt75Xx3zxz7HSoiUIqvzvDj3HX-4UE/export?gid=0&format=csv&id=1xJMTHaZZJrl1Vpt75Xx3zxz7HSoiUIqvzvDj3HX-4UE";

        ini_set('default_socket_timeout',    15)

        $spreadsheet_data = [];

        if (($handle = fopen($spreadsheet_url, "r")) !== FALSE) {
            while (($data = fgetcsv($handle, null, ",")) !== FALSE) {
                $spreadsheet_data[]=$data;
            }
        }
        fclose($handle);

        var_dump($spreadsheet_data);

É um código apenas de teste, mas que irei usar para ler o CSV. Sendo que é necessário o arquivo está publico!

@edyonil
Copy link
Contributor

edyonil commented Apr 13, 2016

Galera, só vamos se ligar que hoje o cadastro está rolando pelo google form que vini criou. Quando colocar novos campos no Json temos que colocar lá tb, porque se não vai quebrar o código que ler o csv de lá, se ligou!

@edyonil
Copy link
Contributor

edyonil commented Apr 15, 2016

Agora vou começar a trabalhar na classe cliente, que vai ler os dados do repositório e vai criar o arquivo json. @vinaocruz disse que eu não posso somente sobrescrever o arquivo json, terei que ler e comparar as empresas e apenas adicionar as novas cadastradas. Isso porque permitiremos cadastrar as empresas diretamente no json.

Removi a ideia de criar uma abstração para ler o arquivo. Não faz sentido ter essa classe. Será apenas um arquivo mesmo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants