Istruzioni
Lo strumento interattivo per gli snippet di codice consente di testare facilmente le richieste API e generare esempi di codice specifici per queste richieste. Per ogni metodo specifico, lo strumento mostra snippet di codice per uno o più casi d'uso e ogni caso d'uso descrive un modo comune per chiamare 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 della richiesta. Se non hai precedentemente autorizzato l'applicazione a inviare richieste API per tuo conto, ti verrà richiesto di farlo. Come ulteriore precauzione, se la tua richiesta esegue un'operazione di scrittura, come l'inserimento, l'aggiornamento o l'eliminazione di risorse associate al tuo canale, ti verrà chiesto di confermare che vuoi eseguire la richiesta prima che venga 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 del metodo specifico. Ogni snippet identifica il metodo chiamato e i valori dei parametri e delle proprietà utilizzati nella richiesta API.
Inoltre, lo strumento mostra anche un esempio di codice completo che inserisce lo 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 all'esempio completo:
Esegui esempi di codice completi in locale
Gli esempi di codice completi sono progettati per essere copiati ed eseguiti localmente. Tieni presente i seguenti prerequisiti e la procedura di configurazione per l'esecuzione degli esempi di codice completi:
Prerequisiti
- Java 1.7 o versione successiva
- Gradle 2.3 o versioni successive
Configura il progetto ed esegui 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 riportate nella guida rapida di API Java per preparare il 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" }
-
Nella directory di lavoro, salva il file
client_secrets.json
associato alle tue credenziali insrc/main/resources/client_secret.json
. -
Dalla tua directory di lavoro, copia l'esempio di codice completo in
src/main/java/ApiExample.java
. (Il nome della classe in ogni campione èApiExample
, quindi non devi modificare il filebuild.gradle
per eseguire campioni diversi.) -
Esegui l'esempio dalla riga di comando:
gradle -q run
-
La maggior parte degli esempi stampa qualcosa su
STDOUT
. Puoi anche visitare il sito web di YouTube per verificare gli effetti delle richieste che scrivono dati, come 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, trova la riga che imposta l'ID client da utilizzare per la richiesta e sostituisci il valore con l'ID client per le tue credenziali:
gapi.client.init({ 'clientId': 'REPLACE_ME',
-
Apri il file nel browser (ad es.
http://localhost/example.html
). È consigliabile utilizzare un browser con una console di debug, come Google Chrome. -
Autorizza la richiesta, se necessario. Se la richiesta è autorizzata, la console di debug dovrebbe visualizzare la risposta dell'API alla richiesta come oggetto JSON.
Prerequisiti
- Node.js deve essere installato.
- Lo strumento di gestione dei pacchetti npm (fornito con 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 progetto ed esegui esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 nella console API di Google. Quando configuri 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
(oppure modifica l'esempio per identificarne correttamente la posizione. -
Esegui l'esempio dalla riga di comando:
node sample.js
-
La maggior parte degli esempi stampa qualcosa su
STDOUT
o, per gli esempi di applicazioni web, sulla pagina web visualizzata. Puoi anche visitare il sito web di YouTube per verificare gli effetti delle richieste che scrivono dati, come 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 progetto ed esegui esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 nella console API di Google. Quando imposti le credenziali, imposta il tipo di applicazione su Applicazione web per gli esempi che utilizzano il framework dell'applicazione web Python Flask e imposta anche gli URI di reindirizzamento autorizzati per queste 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
(oppure modifica l'esempio per identificarne correttamente la posizione. -
Esegui l'esempio dalla riga di comando:
python sample.py
Nota per gli esempi di applicazioni server web:
Se esegui gli esempi Python per applicazioni server web, l'esecuzione dello script avvia un server web locale. Per eseguire effettivamente la richiesta API, devi accedere alla pagina web pubblicata in un browser. Ad esempio, gli esempi Python che utilizzano il framework dell'applicazione web Flask contengono una riga come questa:
app.run('localhost', 8080, debug=True)
Questo codice avvia un server web locale alle orehttp://localhost:8080
. Tuttavia, lo script non tenta di eseguire una richiesta API finché non passi effettivamente ahttp://localhost:8080
in un browser. L'URL del server locale deve essere inoltre impostato come URI di reindirizzamento autorizzato per le credenziali di autorizzazione. -
La maggior parte degli esempi stampa qualcosa su
STDOUT
o, per gli esempi di applicazioni web, sulla pagina web visualizzata. Puoi anche visitare il sito web di YouTube per verificare gli effetti delle richieste che scrivono dati, come 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 di Composer.
- Libreria client delle API di Google per PHP:
php composer.phar require google/apiclient:^2.0
Configura il progetto ed esegui esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 nella console API di Google. Quando configuri 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
(oppure modifica l'esempio per identificarne correttamente la posizione. -
Esegui l'esempio dalla riga di comando:
php sample.php
-
La maggior parte degli esempi stampa qualcosa su
STDOUT
o, per gli esempi di applicazioni web, sulla pagina web visualizzata. Puoi anche visitare il sito web di YouTube per verificare gli effetti delle richieste che scrivono dati, come le richieste che creano playlist o sezioni del canale.
Prerequisiti
- Ruby 2.0 o versione successiva
- La libreria client delle API di Google per Ruby:
gem install google-api-client
Configura il progetto ed esegui esempi di codice
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 nella console API di Google. Quando configuri 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
(oppure modifica l'esempio per identificarne correttamente la posizione. -
Esegui l'esempio dalla riga di comando:
ruby sample.rb
-
La maggior parte degli esempi stampa qualcosa su
STDOUT
o, per gli esempi di applicazioni web, sulla pagina web visualizzata. Puoi anche visitare il sito web di YouTube per verificare gli effetti delle richieste che scrivono dati, come le richieste che creano playlist o sezioni del canale.
-
Crea un progetto nella console API e configura le credenziali OAuth 2.0 nella console API di Google. Quando configuri 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
(oppure modifica l'esempio per identificarne correttamente la posizione. -
Esegui l'esempio dalla riga di comando:
go run sample.go
-
La maggior parte degli esempi stampa qualcosa su
STDOUT
o, per gli esempi di applicazioni web, sulla pagina web visualizzata. Puoi anche visitare il sito web di YouTube per verificare gli effetti delle richieste che scrivono dati, come le richieste che creano playlist o sezioni del canale.
Utilizzare le funzioni boilerplate
Come indicato in precedenza, gli esempi di codice completi utilizzano il codice boilerplate per l'autorizzazione e la creazione delle richieste API. Ad esempio, la funzione build_resource
negli esempi Python utilizza un dizionario che mappa le proprietà delle risorse ai relativi valori per creare una risorsa che può essere inserita o aggiornata. Funzioni simili sono disponibili per JavaScript, PHP, Ruby, Go e Apps Script.
Ad esempio, le schede seguenti mostrano come verrebbe chiamata il boilerplate per la creazione di risorse per creare una risorsa playlist
. Tieni presente che le funzioni boilerplate non devono necessariamente sapere che 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 delle proprietà correnti vengono caricati nel modulo e puoi aggiornare solo quelli che vuoi modificare.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/youtube/images/interactive-snippet-load-resource.png?authuser=19&hl=it)