Instruções
A ferramenta de snippets de código interativos permite que você teste facilmente as solicitações de API e gere exemplos de código específicos para essas solicitações. Para qualquer método, a ferramenta mostra snippets de código para um ou mais casos de uso, e cada caso de uso descreve uma maneira comum de chamar esse método. Por exemplo, você pode chamar o método channels.list
para recuperar dados sobre um canal específico ou sobre o canal do usuário atual.
Executar solicitações de API
É possível executar solicitações clicando no botão Executar ao lado da lista de parâmetros de solicitação. Se você não autorizou anteriormente o aplicativo a enviar solicitações de API em seu nome, terá que fazer isso. Como precaução extra, se a solicitação executar uma operação de gravação – inserindo, atualizando ou excluindo recursos associados ao seu canal – você será solicitado a confirmar se deseja executar a solicitação antes que ela seja realmente executada.
Alternar snippets de código e amostras completas
Para cada caso de uso, a ferramenta mostra um snippet de código que identifica o código específico para o método específico que está sendo chamado. Cada snippet identifica o método chamado, bem como os valores de parâmetro e propriedade usados na solicitação da API.
Além disso, a ferramenta também mostra um exemplo de código completo que insere esse snippet de código em um modelo que define funções boilerplate para autorizar solicitações de API e criar solicitações de API. Use o controle deslizante acima das amostras para alternar entre o snippet e a amostra completa:
Executar amostras de código completas localmente
Os exemplos de código completos foram projetados para serem copiados e executados localmente. Estes são os pré-requisitos e as etapas de configuração para executar os exemplos de código completos:
Pré-requisitos
- Java 1.7 ou mais recente
- Gradle 2.3 ou mais recente
Configurar seu projeto e executar exemplos de código
-
Crie um projeto no Console de APIs e configure as credenciais para um aplicativo da Web. Defina os URIs de redirecionamento autorizados conforme apropriado.
-
Siga as instruções do Guia de início rápido da API Java para preparar seu projeto, mas substitua o conteúdo do arquivo
build.gradle
padrão pelo seguinte código:apply plugin: 'java' apply plugin: 'application' mainClassName = 'ApiExample' sourceCompatibility = 1.7 targetCompatibility = 1.7 version = '1.0' repositories { mavenCentral() } dependencies { compile 'com.google.api-client:google-api-client:1.22.0' compile 'com.google.oauth-client:google-oauth-client-jetty:1.22.0' compile 'com.google.apis:google-api-services-youtube:v3-rev182-1.22.0' compile group: 'com.google.code.gson', name: 'gson', version: '1.7.2' compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.4.4' } compileJava { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
-
No diretório de trabalho, salve o arquivo
client_secrets.json
associado às suas credenciais emsrc/main/resources/client_secret.json
. -
No diretório de trabalho, copie o exemplo de código completo para
src/main/java/ApiExample.java
. O nome da classe em cada exemplo éApiExample
para que você não precise modificar o arquivobuild.gradle
para executar exemplos diferentes. -
Execute o exemplo na linha de comando:
gradle -q run
-
A maioria das amostras mostra algo em
STDOUT
. Você também pode conferir o site do YouTube para saber os efeitos das solicitações que gravam dados, como as solicitações que criam playlists ou as seções do canal.
-
Crie um projeto no Console de APIs e configure as credenciais para um aplicativo da Web. Defina as origens autorizadas do JavaScript para identificar o URL de onde você enviará solicitações (por exemplo,
http://localhost
). -
Copie o exemplo completo de código para um arquivo local acessível ao seu servidor da Web (por exemplo,
/var/www/html/example.html
). -
Encontre a linha no exemplo de código que define o ID do cliente a ser usado para a solicitação e substitua o valor pelo ID do cliente das suas credenciais:
gapi.client.init({ 'clientId': 'REPLACE_ME',
-
Abra o arquivo no navegador (por exemplo,
http://localhost/example.html
). É recomendável usar um navegador com um console de depuração, como o Google Chrome. -
Autorize a solicitação, se necessário. Se a solicitação estiver autorizada, o console de depuração deverá exibir a resposta da API à solicitação como um objeto JSON.
Pré-requisitos
- O Node.js precisa estar instalado.
- a ferramenta de gerenciamento de pacotes npm (vem com Node.js);
- Biblioteca cliente de APIs do Google para Node.js:
npm install googleapis --save
- Acesso à Internet e a um navegador da Web.
- uma Conta do Google.
Configurar seu projeto e executar exemplos de código
-
Crie um projeto no Console de APIs e configure as credenciais do OAuth 2.0 no Console de APIs do Google. Ao configurar suas credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.json
associado às suas credenciais em um arquivo local. -
Copie o exemplo completo de código para um arquivo local no mesmo diretório do arquivo
client_secret.json
ou modifique o exemplo para identificar corretamente o local desse arquivo. -
Execute o exemplo na linha de comando:
node sample.js
-
A maioria das amostras mostra algo em
STDOUT
ou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para saber os efeitos das solicitações que gravam dados, como as solicitações que criam playlists ou as seções do canal.
Pré-requisitos
- Python 2.6 ou superior
- Ferramenta de gerenciamento de pacotes pip
- A biblioteca cliente de APIs do Google para Python:
pip install --upgrade google-api-python-client
- google-auth, google-auth-oauthlib e google-auth-httplib2 para autorização do usuário.
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
- o framework de aplicativo da Web em Python Flask (se você estiver executando amostras de Python para aplicativos de servidor da Web);
pip install --upgrade flask
- A biblioteca HTTP solicita.
pip install --upgrade requests
Configurar seu projeto e executar exemplos de código
-
Crie um projeto no Console de APIs e configure as credenciais do OAuth 2.0 no Console de APIs do Google. Ao configurar suas credenciais, defina o tipo de aplicativo como Aplicativo da Web para amostras que usam o framework de aplicativos da Web em Python Flask e também configure URIs de redirecionamento autorizados para essas credenciais. Caso contrário, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.json
associado às suas credenciais em um arquivo local. -
Copie o exemplo completo de código para um arquivo local no mesmo diretório do arquivo
client_secret.json
ou modifique o exemplo para identificar corretamente o local desse arquivo. -
Execute o exemplo na linha de comando:
python sample.py
Observação para exemplos de aplicativos de servidor da Web:
Se você estiver executando os exemplos em Python para aplicativos de servidor da Web, a execução do script iniciará um servidor da Web local. Para executar a solicitação de API, você precisa acessar a página da Web exibida em um navegador. Por exemplo, os exemplos de Python que usam o framework de aplicativo da Web Flask contêm uma linha como esta:
app.run('localhost', 8080, debug=True)
Esse código inicia um servidor da Web local emhttp://localhost:8080
. No entanto, o script não tenta executar uma solicitação de API até que você navegue atéhttp://localhost:8080
em um navegador. O URL de seu servidor local também deve ser definido como um URI de redirecionamento autorizado para suas credenciais de autorização. -
A maioria das amostras mostra algo em
STDOUT
ou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para saber os efeitos das solicitações que gravam dados, como as solicitações que criam playlists ou as seções do canal.
Pré-requisitos
- PHP 5.4 ou mais recente com a interface de linha de comando (CLI) e a extensão JSON instaladas.
- A ferramenta de gerenciamento de dependências Composer.
- Biblioteca de cliente de APIs do Google para PHP:
php composer.phar require google/apiclient:^2.0
Configurar seu projeto e executar exemplos de código
-
Crie um projeto no Console de APIs e configure as credenciais do OAuth 2.0 no Console de APIs do Google. Ao configurar suas credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.json
associado às suas credenciais em um arquivo local. -
Copie o exemplo completo de código para um arquivo local no mesmo diretório do arquivo
client_secret.json
ou modifique o exemplo para identificar corretamente o local desse arquivo. -
Execute o exemplo na linha de comando:
php sample.php
-
A maioria das amostras mostra algo em
STDOUT
ou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para saber os efeitos das solicitações que gravam dados, como as solicitações que criam playlists ou as seções do canal.
Pré-requisitos
- Ruby 2.0 ou superior
- A biblioteca cliente de APIs do Google para Ruby:
gem install google-api-client
Configurar seu projeto e executar exemplos de código
-
Crie um projeto no Console de APIs e configure as credenciais do OAuth 2.0 no Console de APIs do Google. Ao configurar suas credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.json
associado às suas credenciais em um arquivo local. -
Copie o exemplo completo de código para um arquivo local no mesmo diretório do arquivo
client_secret.json
ou modifique o exemplo para identificar corretamente o local desse arquivo. -
Execute o exemplo na linha de comando:
ruby sample.rb
-
A maioria das amostras mostra algo em
STDOUT
ou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para saber os efeitos das solicitações que gravam dados, como as solicitações que criam playlists ou as seções do canal.
-
Crie um projeto no Console de APIs e configure as credenciais do OAuth 2.0 no Console de APIs do Google. Ao configurar suas credenciais, defina o tipo de aplicativo como Outro.
-
Salve o arquivo
client_secret.json
associado às suas credenciais em um arquivo local. -
Copie o exemplo completo de código para um arquivo local no mesmo diretório do arquivo
client_secret.json
ou modifique o exemplo para identificar corretamente o local desse arquivo. -
Execute o exemplo na linha de comando:
go run sample.go
-
A maioria das amostras mostra algo em
STDOUT
ou, para exemplos de aplicativos da Web, na página da Web que você está visualizando. Você também pode conferir o site do YouTube para saber os efeitos das solicitações que gravam dados, como as solicitações que criam playlists ou as seções do canal.
Usar funções boilerplate
Conforme mencionado acima, os exemplos de código completos usam código boilerplate para autorização e criação de solicitações de API. Por exemplo, a função build_resource
em exemplos de Python usa um dicionário que mapeia as propriedades de recurso com os respectivos valores para criar um recurso que pode ser inserido ou atualizado. Há funções semelhantes para JavaScript, PHP, Ruby, Go e Apps Script.
Por exemplo, as guias abaixo mostram como as funções boilerplate para criação de recursos são chamadas para construir um recurso playlist
. As funções boilerplate não precisam saber que tipo de recurso está sendo criado.
function createResource(properties) { var resource = {}; var normalizedProps = properties; for (var p in properties) { var value = properties[p]; if (p && p.substr(-2, 2) == '[]') { var adjustedName = p.replace('[]', ''); if (value) { normalizedProps[adjustedName] = value.split(','); } delete normalizedProps[p]; } } for (var p in normalizedProps) { // Leave properties that don't have values out of inserted resource. if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) { var propArray = p.split('.'); var ref = resource; for (var pa = 0; pa < propArray.length; pa++) { var key = propArray[pa]; if (pa == propArray.length - 1) { ref[key] = normalizedProps[p]; } else { ref = ref[key] = ref[key] || {}; } } }; } return resource; } var resource = createResource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'JavaScript code, interactive', 'snippet.defaultLanguage': '', 'status.privacyStatus': 'private' }
# Build a resource based on a list of properties given as key-value pairs. # Leave properties with empty values out of the inserted resource. def build_resource(properties): resource = {} for p in properties: # Given a key like "snippet.title", split into "snippet" and "title", where # "snippet" will be an object and "title" will be a property in that object. prop_array = p.split('.') ref = resource for pa in range(0, len(prop_array)): is_array = False key = prop_array[pa] # Convert a name like "snippet.tags[]" to snippet.tags, but handle # the value as an array. if key[-2:] == '[]': key = key[0:len(key)-2:] is_array = True if pa == (len(prop_array) - 1): # Leave properties without values out of inserted resource. if properties[p]: if is_array: ref[key] = properties[p].split(',') else: ref[key] = properties[p] elif key not in ref: # For example, the property is "snippet.title", but the resource does # not yet have a "snippet" object. Create the snippet object here. # Setting "ref = ref[key]" means that in the next time through the # "for pa in range ..." loop, we will be setting a property in the # resource's "snippet" object. ref[key] = {} ref = ref[key] else: # For example, the property is "snippet.description", and the resource # already has a "snippet" object. ref = ref[key] return resource resource = build_resource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'Python code, interactive', 'snippet.defaultLanguage': '', 'status.privacyStatus': 'private'}
// Add a property to the resource. function addPropertyToResource(&$ref, $property, $value) { $keys = explode(".", $property); $is_array = false; foreach ($keys as $key) { // Convert a name like "snippet.tags[]" to "snippet.tags" and // set a boolean variable to handle the value like an array. if (substr($key, -2) == "[]") { $key = substr($key, 0, -2); $is_array = true; } $ref = &$ref[$key]; } // Set the property value. Make sure array values are handled properly. if ($is_array && $value) { $ref = $value; $ref = explode(",", $value); } elseif ($is_array) { $ref = array(); } else { $ref = $value; } } // Build a resource based on a list of properties given as key-value pairs. function createResource($properties) { $resource = array(); foreach ($properties as $prop => $value) { if ($value) { addPropertyToResource($resource, $prop, $value); } } return $resource; } $propertyObject = createResource(array( 'snippet.title' => 'Sample playlist ', 'snippet.description' => 'This is a sample playlist description.', 'snippet.tags[]' => 'Python code, interactive', 'snippet.defaultLanguage' => '', 'status.privacyStatus' => 'private'));
# Build a resource based on a list of properties given as key-value pairs. def create_resource(properties) resource = {} properties.each do |prop, value| ref = resource prop_array = prop.to_s.split(".") for p in 0..(prop_array.size - 1) is_array = false key = prop_array[p] if key[-2,2] == "[]" key = key[0...-2] is_array = true end if p == (prop_array.size - 1) if is_array if value == "" ref[key.to_sym] = [] else ref[key.to_sym] = value.split(",") end elsif value != "" ref[key.to_sym] = value end elsif ref.include?(key.to_sym) ref = ref[key.to_sym] else ref[key.to_sym] = {} ref = ref[key.to_sym] end end end return resource end resource = create_resource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'Ruby code, interactive', 'snippet.default_language': '', 'status.privacy_status': 'private'})
// Build an object from an object containing properties as key-value pairs function createResource(properties) { var res = {}; var normalizedProps = {}; for (var p in properties) { var value = properties[p]; if (p.substr(-2, 2) == '[]' && value) { var adjustedName = p.replace('[]', ''); normalizedProps[adjustedName] = value.split(','); } else { normalizedProps[p] = value; } } for (var p in normalizedProps) { if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) { var propArray = p.split('.'); var ref = res; for (var pa = 0; pa < propArray.length; pa++) { var key = propArray[pa]; if (pa == propArray.length - 1) { ref[key] = normalizedProps[p]; } else { ref = ref[key] = ref[key] || {}; } } }; } return res; } var resource = createResource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'Apps Script code, interactive', 'snippet.defaultLanguage': '', 'status.privacyStatus': 'private' });
func addPropertyToResource(ref map[string]interface{}, keys []string, value string, count int) map[string]interface{} { for k := count; k < (len(keys) - 1); k++ { switch val := ref[keys[k]].(type) { case map[string]interface{}: ref[keys[k]] = addPropertyToResource(val, keys, value, (k + 1)) case nil: next := make(map[string]interface{}) ref[keys[k]] = addPropertyToResource(next, keys, value, (k + 1)) } } // Only include properties that have values. if (count == len(keys) - 1 && value != "") { valueKey := keys[len(keys)-1] if valueKey[len(valueKey)-2:] == "[]" { ref[valueKey[0:len(valueKey)-2]] = strings.Split(value, ",") } else if len(valueKey) > 4 && valueKey[len(valueKey)-4:] == "|int" { ref[valueKey[0:len(valueKey)-4]], _ = strconv.Atoi(value) } else if value == "true" { ref[valueKey] = true } else if value == "false" { ref[valueKey] = false } else { ref[valueKey] = value } } return ref } func createResource(properties map[string]string) string { resource := make(map[string]interface{}) for key, value := range properties { keys := strings.Split(key, ".") ref := addPropertyToResource(resource, keys, value, 0) resource = ref } propJson, err := json.Marshal(resource) if err != nil { log.Fatal("cannot encode to JSON ", err) } return string(propJson) } func main() { properties := (map[string]string{ "snippet.title": "Sample playlist ", "snippet.description": "This is a sample playlist description.", "snippet.tags[]": "Go code, interactive", "snippet.defaultLanguage": "", "status.privacyStatus": "private", }) res := createResource(properties)
Carregar recursos atuais
Para testar uma solicitação de atualização de um recurso, carregue os valores atuais da propriedade desse recurso no formulário de atualização. Por exemplo, para atualizar metadados sobre um vídeo, insira o ID do vídeo no campo de propriedade id
e clique no botão Carregar recurso. Os valores de propriedade atuais são carregados no formulário, e você pode atualizar somente os valores que gostaria de alterar.