Os guias de início rápido explicam como configurar e executar um app que chama uma API Google Workspace.
Os guias de início rápido do Google Workspace usam as bibliotecas de cliente da API para lidar com alguns detalhes do fluxo de autenticação e autorização. Recomendamos que você use as bibliotecas de cliente para seus próprios aplicativos. Neste guia de início rápido, usamos uma abordagem de autenticação simplificada apropriada 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 apropriadas para seu app.
Crie um aplicativo de linha de comando do Node.js que faça solicitações para a API Drive Labels.
Objetivos
- Configurar o ambiente.
- Instale a biblioteca de cliente.
- Configure a amostra.
- Execute a amostra.
Pré-requisitos
- Node.js e npm instalados.
- Um projeto do Google Cloud.
- 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, é preciso ativá-las em um projeto do Google Cloud. É 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 de computador
Para autenticar os usuários finais e acessar os dados do usuário no seu app, você precisa criar um ou mais IDs do cliente OAuth 2.0. Um ID do cliente é usado para identificar um único app nos servidores OAuth do Google. Caso seu app seja executado em várias plataformas, você precisará criar um ID do cliente separado para cada uma delas.- No console do Google Cloud, acesse Menu > APIs e serviços > Credenciais.
- Clique em Criar credenciais > ID do cliente OAuth.
- Clique em Tipo de aplicativo > App para computador.
- No campo Nome, digite um nome para a credencial. Ele só aparece no console do Google Cloud.
- Clique em Criar. A tela cliente OAuth criado é exibida, mostrando seu novo ID e chave secreta do cliente.
- Clique em OK. A credencial recém-criada aparece em IDs do cliente OAuth 2.0.
- Salve o arquivo JSON salvo como
credentials.json
e mova-o 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
.Cole este código no arquivo:
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 o exemplo:
node .
Na primeira vez que você executar o exemplo, ele solicitará que você autorize o acesso:
- Se você ainda não tiver feito login na sua Conta do Google, será necessário fazer login. Se você tiver feito login em várias contas, selecione uma 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 código de amostra, a autorização não será solicitada.
Você criou seu primeiro aplicativo Nodejs que faz solicitações para a 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.