{"id":1158,"date":"2018-09-14T00:37:04","date_gmt":"2018-09-14T03:37:04","guid":{"rendered":"http:\/\/www.l2maker.com.br\/documentacao\/?p=1158"},"modified":"2022-02-26T11:56:47","modified_gmt":"2022-02-26T14:56:47","slug":"trabalhando-com-arquivos-no-google-drive","status":"publish","type":"post","link":"https:\/\/www.l2maker.com.br\/documentacao\/2018\/09\/trabalhando-com-arquivos-no-google-drive\/","title":{"rendered":"Trabalhando com arquivos no Google Drive"},"content":{"rendered":"<p>Esta API sua os recursos disponibilizados pelo Google, respeitando os termos de uso do servi\u00e7o Google Drive API. Na vers\u00e3o gratuita s\u00e3o 15 GB de espa\u00e7o para arquivos (09\/2018).\u00a0 (Consultar informa\u00e7\u00f5es oficiais:\u00a0<a href=\"https:\/\/www.google.com.br\/drive\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.google.com.br\/drive\/<\/a> )<\/p>\n<h2>Pr\u00e9-requisitos<\/h2>\n<ul>\n<li>Conta no Google;<\/li>\n<li>Webrun acess\u00edvel na Internet (desej\u00e1vel);<\/li>\n<\/ul>\n<h2>Configurando um projeto na conta do Google<\/h2>\n<ol>\n<li>Acesse o console de APIs do Google: <a href=\"http:\/\/console.developers.google.com\" target=\"_blank\" rel=\"noopener\">http:\/\/console.developers.google.com<\/a><\/li>\n<li>Crie um novo projeto &#8220;<strong>NOVO PROJETO<\/strong>&#8221; \/ &#8220;<strong>NEW PROJECT<\/strong>&#8220;;<\/li>\n<li>Clique sobre o link &#8220;<strong>ATIVAR APIS E SERVI\u00c7OS<\/strong>&#8220;;<\/li>\n<li>Procure por &#8220;<strong>Google Drive API<\/strong>&#8220;, clique\u00a0 sobre a API do Drive em em seguida em &#8220;<strong>ATIVAR<\/strong>&#8220;;<\/li>\n<li>Adicione credenciais de acesso (<strong>Credentials<\/strong>) do tipo &#8220;OAuth 2.0&#8221; clicando em<strong> Credenciais &gt; Criar Credenciais &gt; ID do cliente OAuth<\/strong>, selecione o tipo de aplicativo &#8220;<strong>Aplicativo da Web<\/strong>&#8220;;<\/li>\n<li>Cadastrando a URL de retorno, apontando para um formul\u00e1rio do Maker ou Fluxo Web publicamente acess\u00edvel, por exemplo:\n<ol>\n<li>http:\/\/exemplos.l2servidores.com.br\/webrun\/form.jsp?sys=TEN&amp;action=openform&amp;formID=8338<\/li>\n<li>http:\/\/localhost:8087\/api27\/form.jsp?sys=TEN&amp;action=openform&amp;formID=8338<\/li>\n<\/ol>\n<\/li>\n<li>Copie o &#8220;Client ID&#8221; e &#8220;Client secret&#8221; e informe no mapa com os nomes &#8220;<strong>client_id<\/strong>&#8221; e &#8220;<strong>client_secret<\/strong>&#8221; respectivamente;<\/li>\n<li>Informe a URL de retorno no item &#8220;<strong>redirect_uri<\/strong>&#8220;;<\/li>\n<\/ol>\n<h1>Usando as fun\u00e7\u00f5es<\/h1>\n<p>O uso das fun\u00e7\u00f5es devem seguir os seguintes blocos: Autorizar o acesso \u00e0 conta, Envio e Download de arquivos, Listagem e pesquisa de arquivos, Cancelando\/Revogando um acesso.<\/p>\n<h2>Autorizar o acesso \u00e0 conta<\/h2>\n<p>Este passo libera o acesso das fun\u00e7\u00f5es a uma conta no Google Drive. \u00c9 o primeiro passo para utiliza\u00e7\u00e3o das demais rotinas da API. Ela pode ser feita via OAuth ou Conta de servi\u00e7o (recomendado).<\/p>\n<ul>\n<li><a href=\"https:\/\/www.l2maker.com.br\/documentacao\/2022\/02\/gerando-os-dados-para-acesso-via-oauth-ao-google-drive\/\">Acessando via OAuth<\/a>;<\/li>\n<li><a href=\"https:\/\/www.l2maker.com.br\/documentacao\/2022\/02\/gerando-o-json-para-acesso-ao-google-drive\/\">Acessando via Conta de servi\u00e7o (SJON)<\/a> (<span style=\"color: #ff0000;\"><strong>RECOMENDADO<\/strong><\/span>).<\/li>\n<\/ul>\n<p>Para criar uma conex\u00e3o utilize a fun\u00e7\u00e3o \u201c<strong>Google Drive \u2013 Inicializar<\/strong>\u201d passando os dados de acordo com o m\u00e9todo escolhido.<\/p>\n<h2>Envio de arquivos<\/h2>\n<p>Ap\u00f3s criar uma inst\u00e2ncia da conex\u00e3o com o Google Drive devidamente autorizada, basta executar a chamada \u00e0 fun\u00e7\u00e3o &#8220;<strong>Nuvem &#8211; Enviar arquivo<\/strong>(<span style=\"color: #ff0000;\"><strong>gDrive<\/strong><span style=\"color: #000000;\">,<\/span> <strong>Arquivo local<\/strong><span style=\"color: #000000;\">,<\/span><strong> ID remoto<\/strong><span style=\"color: #000000;\">,<\/span> <strong>Metadados<\/strong><span style=\"color: #000000;\">)<\/span><\/span>&#8221; onde:<\/p>\n<ol>\n<li>gDrive \u00e9 o retorno da fun\u00e7\u00e3o &#8220;<strong>Nuvem &#8211; Inicializar&#8221;;<\/strong><\/li>\n<li>Arquivo local \u00e9 o caminho completo do arquivo <strong>no servidor<\/strong> (EX: C:\\TEMP\\meu-arquivo.zip);<\/li>\n<li>ID remoto \u00e9 o c\u00f3digo do arquivo a ser atuaizado, ou em branco para criar um novo arquivo;<\/li>\n<li>Metadados \u00e9 um mapa com informa\u00e7\u00f5es sobre o arquivo a ser enviado (Pode ser em branco).<\/li>\n<\/ol>\n<p>O retorno dessa fun\u00e7\u00e3o ser\u00e1 um mapa com:<\/p>\n<ul>\n<li>ID (Letras) &#8211; Identificador \u00fanico do arquivo no servidor;<\/li>\n<li>SUCESSO (L\u00f3gico) &#8211; Identifica se a opera\u00e7\u00e3o temrinou com sucesso;<\/li>\n<li>TAMANHO (Inteiro) &#8211; N\u00famero de bytes do arquivo enviado;<\/li>\n<li>NOME (Letras) &#8211; Nome do arquivo no servidor.<\/li>\n<\/ul>\n<h2>Consultando\/Listando arquivos<\/h2>\n<p>Os arquivos no Google Drive podem ser consultados individualmente (por ID), ou pesquisado por nome\/pasta.<\/p>\n<h3>Consultando por ID<\/h3>\n<p>Utilize a fun\u00e7\u00e3o &#8220;Nuvem &#8211; Obter informa\u00e7\u00f5es do arquivo&#8221; passando a conex\u00e3o com o Drive, e o ID do arquivo a ser consultado. Dica, voc\u00ea pode utilizar esta fun\u00e7\u00e3o para comparar que o MD5 do arquivo enviado e o recebido s\u00e3o os mesmo.<\/p>\n<h3>Consultando por nome<\/h3>\n<p>Voc\u00ea pode lista todos os arquivos da raiz, ou de uma pasta espec\u00edfica (pelo ID). Para tal utilize a fun\u00e7\u00e3o &#8220;Nuvem &#8211; Listar arquivos&#8221;, com os seguintes par\u00e2metros:<\/p>\n<ol>\n<li>gDrive \u00e9 o retorno da fun\u00e7\u00e3o &#8220;<strong>Nuvem &#8211; Inicializar&#8221;;<\/strong><\/li>\n<li>Arquivo remoto (Letras) &#8211; Passe um barra invertida &#8220;\/&#8221; para listar todos os arquivos e pastas na raiz. Ou o nume de um arquivo para retornar todos os arquivos remotos que cont\u00e9m aquele nome.<\/li>\n<li>O retorno desta fun\u00e7\u00e3o ser\u00e1 uma lista de mapas, utilize as fun\u00e7\u00f5es nativas de lista e mapa do Maker para percorrer os dados retornados, cada mapa ir\u00e1 conter os seguintes itens:\n<ul>\n<li><strong>ID<\/strong> (Letras) &#8211; Identificador \u00fanico do arquivo no servidor;<\/li>\n<li><strong>DIRETORIO\u00a0<\/strong>(L\u00f3gico) &#8211; Identifica se o item \u00e9 uma pasta;<\/li>\n<li><strong>TAMANHO<\/strong> (Inteiro) &#8211; N\u00famero de bytes do arquivo enviado;<\/li>\n<li><strong>NOME<\/strong> (Letras) &#8211; Nome do arquivo no servidor;<\/li>\n<li><strong>Md5<\/strong> (Letras) &#8211; Hash MD5 do arquivo remoto.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Baixando ou removendo um arquivo<\/h3>\n<p>Para baixar um arquivo <strong>para o servidor (onde est\u00e1 o Webrun)<\/strong> utilize a fun\u00e7\u00e3o &#8220;<strong>Nuvem &#8211; Baixar arquivo&#8221;<\/strong>, informando o caminho completo do arquivo no servidor, e o<strong> ID <\/strong>do arquivo a ser copiado do Drive.<\/p>\n<p>Para excluir um arquivo utilize a fun\u00e7\u00e3o &#8220;<strong>Nuvem &#8211; Deletar arquivo<\/strong>&#8220;, informando o ID do arquivo a ser exclu\u00eddo do servidor. A\u00e7\u00e3o n\u00e3o tem como ser desfeita, utilize com cautela ou n\u00e3o adicione no seu projeto para evitar perda de dados. Arquivos enviados pela API podem ser removidos manualmente pela interface do Google Drive.<\/p>\n<h1>Solu\u00e7\u00e3o de problemas<\/h1>\n<ul>\n<li><b>Error: redirect_uri_mismatch<\/b> &#8211; Configure a URL completa do formul\u00e1rio ou fluxo de retorno.<\/li>\n<li><strong>Falta de acesso a API do Google Drive<\/strong>: Caso o projeto n\u00e3o tenha sido configurado para acessar as APIs do Google Drive ser\u00e1 exibido uma mensagem de erro parecida com essa: <strong><em>&#8220;<\/em><\/strong><em>Project <\/em><em><span style=\"color: #ff0000;\">XYZ<\/span> is not found and cannot be used for API calls. If it is recently created, enable Drive API by visiting https:\/\/console.developers.google.com\/apis\/api\/drive.googleapis.com\/overview?project=<span style=\"color: #ff0000;\">XYZ<\/span>\u00a0<\/em><em>then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.<\/em><strong><em>&#8220;<\/em><\/strong><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Esta API sua os recursos disponibilizados pelo Google, respeitando os termos de uso do servi\u00e7o Google Drive API. Na vers\u00e3o gratuita s\u00e3o 15 GB de espa\u00e7o para arquivos (09\/2018).\u00a0 (Consultar informa\u00e7\u00f5es oficiais:\u00a0https:\/\/www.google.com.br\/drive\/ ) Pr\u00e9-requisitos Conta no Google; Webrun acess\u00edvel na Internet (desej\u00e1vel); Configurando um projeto na conta do Google Acesse o console de APIs do [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[157],"tags":[14,159,158],"class_list":["post-1158","post","type-post","status-publish","format-standard","hentry","category-api-arquivo-nuvem-docs","tag-api","tag-cloud","tag-google-drive"],"_links":{"self":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/1158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/comments?post=1158"}],"version-history":[{"count":14,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/1158\/revisions"}],"predecessor-version":[{"id":2384,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/posts\/1158\/revisions\/2384"}],"wp:attachment":[{"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/media?parent=1158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/categories?post=1158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.l2maker.com.br\/documentacao\/wp-json\/wp\/v2\/tags?post=1158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}