Istruzioni
Lo strumento di snippet di codice interattivo consente di testare facilmente le richieste API e generare esempi di codice specifici per queste richieste. Per ogni metodo, lo strumento mostra snippet di codice per uno o più casi d'uso e ogni caso d'uso descrive un metodo comune per richiamare quel metodo. Ad esempio, puoi chiamare il metodo channels.list
per recuperare i dati relativi a un canale specifico o al canale dell'utente corrente.
Esegui richieste API
Puoi eseguire le richieste facendo clic sul pulsante Esegui accanto all'elenco dei parametri di richiesta. Se non hai precedentemente autorizzato la richiesta di inviare per tuo conto le richieste API, ti verrà chiesto di farlo. Come ulteriore precauzione, se la tua richiesta esegue un'operazione di scrittura (inserimento, aggiornamento o eliminazione di risorse associate al tuo canale), ti verrà chiesto di confermare che vuoi eseguire la richiesta prima che venga effettivamente eseguita.
Attiva/disattiva snippet di codice ed esempi completi
Per ogni caso d'uso, lo strumento mostra uno snippet di codice che identifica il codice specifico per il particolare metodo chiamato. Ogni snippet identifica il metodo da chiamare e i valori di parametri e proprietà utilizzati nella richiesta API.
Inoltre, lo strumento mostra anche un esempio di codice completo che inserisce questo snippet di codice in un modello che definisce le funzioni boilerplate per l'autorizzazione delle richieste API e la creazione di richieste API. Puoi utilizzare il dispositivo di scorrimento sopra gli esempi per passare dallo snippet al campione completo e viceversa:
Esegui esempi di codice completo in locale
Gli esempi di codice completi sono progettati per essere copiati ed eseguiti in locale. Tieni presente i seguenti prerequisiti e i passaggi di configurazione per l'esecuzione degli esempi di codice completi:
Prerequisiti
- Java 1.7 o versioni successive
- Gradle 2.3 o superiore
Configura il tuo progetto ed esegui gli esempi di codice
-
Crea un progetto nella console API e configura le credenziali per un'applicazione web. Imposta gli URI di reindirizzamento autorizzati come appropriato.
-
Segui le istruzioni nella guida rapida di API Java per preparare il tuo progetto, ma sostituisci i contenuti del file
build.gradle
predefinito con il seguente codice: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" }
-
Dalla tua directory di lavoro, salva il file
client_secrets.json
associato alle tue credenziali insrc/main/resources/client_secret.json
. -
Dalla directory di lavoro, copia l'esempio di codice completo in
src/main/java/ApiExample.java
. Il nome della classe in ogni esempio èApiExample
, quindi non è necessario modificare il filebuild.gradle
per eseguire degli esempi diversi. -
Esegui l'esempio dalla riga di comando:
gradle -q run
-
La maggior parte degli esempi stampa qualcosa su
STDOUT
. Puoi anche controllare il sito web di YouTube per vedere gli effetti delle richieste che scrivono dati, ad esempio le richieste che creano playlist o sezioni del canale.
-
Crea un progetto nella console API e configura le credenziali per un'applicazione web. Imposta le origini JavaScript autorizzate per identificare l'URL da cui invierai le richieste (ad es.
http://localhost
). -
Copia l'esempio di codice completo in un file locale accessibile al tuo server web (ad es.
/var/www/html/example.html
). -
Nell'esempio di codice, individua la riga che imposta l'ID client da utilizzare per la richiesta e sostituisci il valore con quello corrispondente per le tue credenziali:
gapi.client.init({ 'clientId': 'REPLACE_ME',
-
Apri il file nel tuo browser (ad esempio
http://localhost/example.html
). È consigliabile utilizzare un browser con una console di debug, come Google Chrome. -
Autorizza la richiesta, se necessario. Se la richiesta viene autorizzata, la console di debug dovrebbe visualizzare la risposta API alla richiesta come un oggetto JSON.
Prerequisiti
- È necessario installare Node.js.
- Lo strumento di gestione dei pacchetti npm (include Node.js).
- La libreria client delle API di Google per Node.js:
npm install googleapis --save
- Accesso a Internet e a un browser web.
- Un Account Google.
Configura il tuo progetto ed esegui gli esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 in Google API Console. Quando imposti le credenziali, imposta il tipo di applicazione su Altro.
-
Salva il file
client_secret.json
associato alle tue credenziali in un file locale. -
Copia l'esempio di codice completo in un file locale nella stessa directory del file
client_secret.json
(o modifica l'esempio per identificare correttamente la posizione del file). -
Esegui l'esempio dalla riga di comando:
node sample.js
-
La maggior parte degli esempi stampa qualcosa in
STDOUT
o, per gli esempi di applicazioni web, nella pagina web che stai visualizzando. Puoi anche controllare il sito web di YouTube per vedere gli effetti delle richieste che scrivono dati, ad esempio le richieste che creano playlist o sezioni del canale.
Prerequisiti
- Python 2.6 o versioni successive
- Lo strumento di gestione dei pacchetti pip
- La libreria client delle API di Google per Python:
pip install --upgrade google-api-python-client
- google-auth, google-auth-oauthlib e google-auth-httplib2 per l'autorizzazione dell'utente.
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
- Il framework dell'applicazione web Python Flask (se esegui gli esempi Python per le applicazioni server web).
pip install --upgrade flask
- La libreria HTTP delle richieste.
pip install --upgrade requests
Configura il tuo progetto ed esegui gli esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 in Google API Console. Quando configuri le credenziali, imposta il tipo di applicazione su Applicazione web per gli esempi che utilizzano il framework dell'applicazione web Flask Python e imposta anche gli URI di reindirizzamento autorizzati per le credenziali. In caso contrario, imposta il tipo di applicazione su Altro.
-
Salva il file
client_secret.json
associato alle tue credenziali in un file locale. -
Copia l'esempio di codice completo in un file locale nella stessa directory del file
client_secret.json
(o modifica l'esempio per identificare correttamente la posizione del file). -
Esegui l'esempio dalla riga di comando:
python sample.py
Nota per gli esempi di applicazioni server web:
Se esegui gli esempi Python per le applicazioni server web, l'esecuzione dello script avvia un server web locale. Per eseguire correttamente la richiesta API, devi aprire la pagina web offerta in un browser. Ad esempio, gli esempi Python che utilizzano il framework dell'applicazione web Flask contengono una riga come la seguente:
app.run('localhost', 8080, debug=True)
Questo codice avvia un server web locale all'indirizzohttp://localhost:8080
. Tuttavia, lo script non tenta di eseguire una richiesta API finché non accedi effettivamente ahttp://localhost:8080
in un browser. Inoltre, l'URL del server locale deve essere impostato come URI di reindirizzamento autorizzato per le tue credenziali di autorizzazione. -
La maggior parte degli esempi stampa qualcosa in
STDOUT
o, per gli esempi di applicazioni web, nella pagina web che stai visualizzando. Puoi anche controllare il sito web di YouTube per vedere gli effetti delle richieste che scrivono dati, ad esempio le richieste che creano playlist o sezioni del canale.
Prerequisiti
- PHP 5.4 o versioni successive con l'interfaccia a riga di comando (CLI) e l'estensione JSON installate.
- Lo strumento di gestione delle dipendenze Composer.
- La libreria client delle API di Google per PHP:
php composer.phar require google/apiclient:^2.0
Configura il tuo progetto ed esegui gli esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 in Google API Console. Quando imposti le credenziali, imposta il tipo di applicazione su Altro.
-
Salva il file
client_secret.json
associato alle tue credenziali in un file locale. -
Copia l'esempio di codice completo in un file locale nella stessa directory del file
client_secret.json
(o modifica l'esempio per identificare correttamente la posizione del file). -
Esegui l'esempio dalla riga di comando:
php sample.php
-
La maggior parte degli esempi stampa qualcosa in
STDOUT
o, per gli esempi di applicazioni web, nella pagina web che stai visualizzando. Puoi anche controllare il sito web di YouTube per vedere gli effetti delle richieste che scrivono dati, ad esempio le richieste che creano playlist o sezioni del canale.
Prerequisiti
- Ruby 2.0 o versioni successive
- La libreria client delle API di Google per Ruby:
gem install google-api-client
Configura il tuo progetto ed esegui gli esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 in Google API Console. Quando imposti le credenziali, imposta il tipo di applicazione su Altro.
-
Salva il file
client_secret.json
associato alle tue credenziali in un file locale. -
Copia l'esempio di codice completo in un file locale nella stessa directory del file
client_secret.json
(o modifica l'esempio per identificare correttamente la posizione del file). -
Esegui l'esempio dalla riga di comando:
ruby sample.rb
-
La maggior parte degli esempi stampa qualcosa in
STDOUT
o, per gli esempi di applicazioni web, nella pagina web che stai visualizzando. Puoi anche controllare il sito web di YouTube per vedere gli effetti delle richieste che scrivono dati, ad esempio le richieste che creano playlist o sezioni del canale.
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 in Google API Console. Quando imposti le credenziali, imposta il tipo di applicazione su Altro.
-
Salva il file
client_secret.json
associato alle tue credenziali in un file locale. -
Copia l'esempio di codice completo in un file locale nella stessa directory del file
client_secret.json
(o modifica l'esempio per identificare correttamente la posizione del file). -
Esegui l'esempio dalla riga di comando:
go run sample.go
-
La maggior parte degli esempi stampa qualcosa in
STDOUT
o, per gli esempi di applicazioni web, nella pagina web che stai visualizzando. Puoi anche controllare il sito web di YouTube per vedere gli effetti delle richieste che scrivono dati, ad esempio le richieste che creano playlist o sezioni del canale.
Utilizzare le funzioni boilerplate
Come indicato sopra, gli esempi di codice completi utilizzano codice boilerplate per autorizzare e costruire le richieste API. Ad esempio, la funzione build_resource
negli esempi Python utilizza un dizionario che mappa le proprietà delle risorse ai propri valori per creare una risorsa che può essere inserita o aggiornata. Sono disponibili funzioni simili per JavaScript, PHP, Ruby, Go e Apps Script.
Ad esempio, le schede di seguito mostrano come verrebbero chiamate le funzioni boilerplate per la creazione di risorse per la creazione di una risorsa playlist
. Tieni presente che le funzioni boilerplate non hanno bisogno di sapere quale tipo di risorsa viene creata.
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)
Carica risorse esistenti
Per testare una richiesta di aggiornamento di una risorsa esistente, puoi caricare i valori delle proprietà correnti per quella risorsa nel modulo di aggiornamento. Ad esempio, per aggiornare i metadati relativi a un video, inserisci l'ID video nel campo della proprietà id
e fai clic sul pulsante Carica risorsa. I valori correnti della proprietà vengono caricati nel modulo e puoi aggiornare solo quelli che vuoi modificare.