Os guias de início rápido explicam como configurar e executar um app que chama uma API do Google Workspace. Este guia usa uma abordagem de autenticação simplificada adequada para um ambiente de teste. Para um ambiente de produção, recomendamos aprender sobre autenticação e autorização antes de escolher as credenciais de acesso adequadas para seu app.
Crie um aplicativo de linha de comando Node.js que faça solicitações à API Drive Labels.
Objetivos
- Prepare o ambiente.
- Instale a biblioteca de cliente.
- Configure a amostra.
- Execute a amostra.
Pré-requisitos
- Node.js e npm instalados.
- Um projeto na nuvem do Google.
- Uma Conta do Google.
Configurar o ambiente
Para concluir este guia de início rápido, configure seu ambiente.
Ativar a API
Antes de usar as APIs do Google, é necessário ativá-las em um projeto na nuvem do Google. É possível ativar uma ou mais APIs em um único projeto do Google Cloud.No console do Google Cloud, ative a API Drive Labels.
Autorizar credenciais para um aplicativo para computador
Para autenticar usuários finais e acessar dados do usuário no app, crie um ou mais IDs do cliente OAuth 2.0. Um ID do cliente é usado para identificar um único app nos servidores OAuth do Google. Se o app for executado em várias plataformas, será necessário criar um ID do cliente separado para cada plataforma.- No console de APIs do Google, acesse Menu > Plataforma de autenticação do Google > Clientes.
- Clique em Criar cliente.
- Clique em Tipo de aplicativo > App para computador.
- No campo Nome, digite um nome para a credencial. Esse nome só é mostrado no console de APIs do Google.
- Clique em Criar.
A credencial recém-criada aparece em "IDs do cliente OAuth 2.0".
- Salve o arquivo JSON transferido por download como
credentials.jsone mova o arquivo para o diretório de trabalho.
Instale a biblioteca de cliente
Instale as bibliotecas usando o npm:
npm install googleapis@113 @google-cloud/local-auth@2.1.1 --save
Configure a amostra
No diretório de trabalho, crie um arquivo chamado
index.js.No arquivo, cole o seguinte código:
const fs = require('fs'); const readline = require('readline'); const {google} = require('googleapis'); // If modifying these scopes, delete token.json. const SCOPES = ['https://www.googleapis.com/auth/drive.labels.readonly']; // The file token.json stores the user's access and refresh tokens, and is // created automatically when the authorization flow completes for the first // time. const TOKEN_PATH = 'token.json'; // Load client secrets from a local file. fs.readFile('credentials.json', (err, content) => { if (err) return console.log('Error loading client secret file:', err); // Authorize a client with credentials, then call the Google Drive Labels // API. authorize(JSON.parse(content), listDriveLabels); }); /** * Create an OAuth2 client with the given credentials, and then execute the * given callback function. * @param {Object} credentials The authorization client credentials. * @param {function} callback The callback to call with the authorized client. */ function authorize(credentials, callback) { const {client_secret, client_id, redirect_uris} = credentials.installed; const oAuth2Client = new google.auth.OAuth2( client_id, client_secret, redirect_uris[0]); // Check if we have previously stored a token. fs.readFile(TOKEN_PATH, (err, token) => { if (err) return getNewToken(oAuth2Client, callback); oAuth2Client.setCredentials(JSON.parse(token)); callback(oAuth2Client); }); } /** * Get and store new token after prompting for user authorization, and then * execute the given callback with the authorized OAuth2 client. * @param {google.auth.OAuth2} oAuth2Client The OAuth2 client to get token for. * @param {getEventsCallback} callback The callback for the authorized client. */ function getNewToken(oAuth2Client, callback) { const authUrl = oAuth2Client.generateAuthUrl({ access_type: 'offline', scope: SCOPES, }); console.log('Authorize this app by visiting this url:', authUrl); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.question('Enter the code from that page here: ', (code) => { rl.close(); oAuth2Client.getToken(code, (err, token) => { if (err) return console.error('Error retrieving access token', err); oAuth2Client.setCredentials(token); // Store the token to disk for later program executions fs.writeFile(TOKEN_PATH, JSON.stringify(token), (err) => { if (err) return console.error(err); console.log('Token stored to', TOKEN_PATH); }); callback(oAuth2Client); }); }); } function listDriveLabels(auth) { const service = google.drivelabels({version: 'v2', auth}); const params = { 'view': 'LABEL_VIEW_FULL' }; service.labels.list(params, (err, res) => { if (err) return console.error('The API returned an error: ' + err); const labels = res.data.labels; if (labels) { labels.forEach((label) => { const name = label.name; const title = label.properties.title; console.log(`${name}\t${title}`); }); } else { console.log('No Labels'); } }); }
Executar a amostra
No diretório de trabalho, execute a amostra:
node .
Na primeira vez que você executar a amostra, será solicitado que você autorize o acesso:
- Se você ainda não tiver feito login na sua Conta do Google, será solicitado que você faça login. Se você tiver feito login em várias contas, selecione uma conta para usar na autorização.
- Clique em Aceitar.
As informações de autorização são armazenadas no sistema de arquivos. Portanto, na próxima vez que você executar o exemplo de código, não será solicitada a autorização.
Você criou seu primeiro aplicativo Nodejs que faz solicitações à API Drive Labels.
Próximas etapas
- Resolver problemas de autenticação e autorização
- Seção de cliente Node.js das APIs do Google no GitHub.