Amostras de código JavaScript

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:

  1. Crie ou selecione um projeto no Console de APIs do Google.
  2. Ative a API YouTube Analytics no projeto.
  3. 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".
  4. Na página Credenciais, clique no botão Criar credenciais e selecione ID do cliente OAuth.
  5. Selecione o tipo de aplicativo "Web".
  6. 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 ou http://yourserver.example.com. Você pode deixar o campo "URIs de redirecionamento autorizado" em branco.
  7. Clique no botão Criar para concluir a criação das credenciais.
  8. 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:

  1. 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.
  2. 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
  3. 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.
  4. Clique no botão Executar para chamar a API. Você verá um objeto response exibido no console no navegador. Nesse objeto, a propriedade result é 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>