A amostra de código abaixo usa a Biblioteca de clientes de APIs do Google para JavaScript. Faça o download desse exemplo na pasta javascript
do repositório de exemplos de código das APIs do YouTube no GitHub (em inglês).
O código solicita a permissão do usuário para acessar o escopo https://www.googleapis.com/auth/yt-analytics.readonly
.
return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) ...
Seu aplicativo também pode precisar solicitar acesso a outros escopos. Por exemplo, um aplicativo que chama a API YouTube Analytics e a API YouTube Data pode precisar que os usuários também concedam acesso às contas do YouTube. A visão geral da autorização identifica os escopos geralmente usados em aplicativos que chamam a API YouTube Analytics.
Recuperar estatísticas diárias do canal
Este exemplo chama a API YouTube Analytics para recuperar visualizações diárias e outras métricas do canal do usuário autorizado no ano civil de 2017. A amostra usa a biblioteca de cliente JavaScript das APIs do Google.
Configurar credenciais de autorização
Antes de executar esta amostra localmente pela primeira vez, é preciso configurar as credenciais de autorização para seu projeto:
- Crie ou selecione um projeto no Console de APIs do Google.
- Ative a API YouTube Analytics no projeto.
- Na parte superior da página Credenciais, selecione a guia Tela de consentimento OAuth. Selecione um endereço de e-mail, insira um nome de produto se ainda não estiver definido e clique no botão "Salvar".
- Na página Credenciais, clique no botão Criar credenciais e selecione ID do cliente OAuth.
- Selecione o tipo de aplicativo "Web".
- No campo "Origens JavaScript autorizadas", insira o URL que servirá de base para o exemplo de código. Por exemplo, você pode usar algo como
http://localhost:8000
ouhttp://yourserver.example.com
. Você pode deixar o campo "URIs de redirecionamento autorizado" em branco. - Clique no botão Criar para concluir a criação das credenciais.
- Antes de fechar a caixa de diálogo, copie o ID do cliente, que você precisará colocar no exemplo de código.
Fazer uma cópia local da amostra
Em seguida, salve a amostra em um arquivo local. No exemplo, encontre a linha a seguir e substitua YOUR_CLIENT_ID pelo ID do cliente que você recebeu ao configurar suas credenciais de autorização.
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
Executar o código
Agora você já pode testar a amostra:
- Abra o arquivo local em um navegador da Web e o console de depuração. Você verá uma página que exibe dois botões.
- Clique no botão Autorizar e carregar para iniciar o fluxo de autorização do usuário. Se você autorizar o app a recuperar os dados do seu canal, você vai ver as seguintes linhas impressas no console no navegador:
Sign-in successful GAPI client loaded for API
- Se você vir uma mensagem de erro em vez das linhas acima, confirme se está carregando o script do URI de redirecionamento autorizado configurado para o projeto e se inseriu o ID do cliente no código conforme descrito acima.
- Clique no botão Executar para chamar a API. Você verá um objeto
response
exibido no console no navegador. Nesse objeto, a propriedaderesult
é mapeada para um objeto que contém os dados da API.
Exemplo de código
<script src="https://apis.google.com/js/api.js"></script> <script> function authenticate() { return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) .then(function() { console.log("Sign-in successful"); }, function(err) { console.error("Error signing in", err); }); } function loadClient() { return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2") .then(function() { console.log("GAPI client loaded for API"); }, function(err) { console.error("Error loading GAPI client for API", err); }); } // Make sure the client is loaded and sign-in is complete before calling this method. function execute() { return gapi.client.youtubeAnalytics.reports.query({ "ids": "channel==MINE", "startDate": "2017-01-01", "endDate": "2017-12-31", "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained", "dimensions": "day", "sort": "day" }) .then(function(response) { // Handle the results here (response.result has the parsed body). console.log("Response", response); }, function(err) { console.error("Execute error", err); }); } gapi.load("client:auth2", function() { gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'}); }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button>