Snippet di codice API Data

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:

Java

Prerequisiti

  • Java 1.7 o versioni successive
  • Gradle 2.3 o superiore

Configura il tuo progetto ed esegui gli esempi di codice

  1. Crea un progetto nella console API e configura le credenziali per un'applicazione web. Imposta gli URI di reindirizzamento autorizzati come appropriato.

  2. 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"
    }
  3. Dalla tua directory di lavoro, salva il file client_secrets.json associato alle tue credenziali in src/main/resources/client_secret.json.

  4. 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 file build.gradle per eseguire degli esempi diversi.

  5. Esegui l'esempio dalla riga di comando:

    gradle -q run
  6. 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.

JavaScript
  1. 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).

  2. Copia l'esempio di codice completo in un file locale accessibile al tuo server web (ad es. /var/www/html/example.html).

  3. 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',
  4. Apri il file nel tuo browser (ad esempio http://localhost/example.html). È consigliabile utilizzare un browser con una console di debug, come Google Chrome.

  5. 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.

Node.js

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

  1. 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.

  2. Salva il file client_secret.json associato alle tue credenziali in un file locale.

  3. 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).

  4. Esegui l'esempio dalla riga di comando:

    node sample.js
  5. 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.

Python

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

  1. 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.

  2. Salva il file client_secret.json associato alle tue credenziali in un file locale.

  3. 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).

  4. 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'indirizzo http://localhost:8080. Tuttavia, lo script non tenta di eseguire una richiesta API finché non accedi effettivamente a http://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.
  5. 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.

PHP

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

  1. 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.

  2. Salva il file client_secret.json associato alle tue credenziali in un file locale.

  3. 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).

  4. Esegui l'esempio dalla riga di comando:

    php sample.php
  5. 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.

Ruby

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

  1. 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.

  2. Salva il file client_secret.json associato alle tue credenziali in un file locale.

  3. 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).

  4. Esegui l'esempio dalla riga di comando:

    ruby sample.rb
  5. 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.

Apps Script
Segui le istruzioni per l'attivazione dei servizi Google avanzati per attivare le funzionalità di YouTube.
Vai
  1. 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.

  2. Salva il file client_secret.json associato alle tue credenziali in un file locale.

  3. 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).

  4. Esegui l'esempio dalla riga di comando:

    go run sample.go
  5. 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.

JavaScript
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'
}
Python
# 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'}
  
PHP
// 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'));
Ruby
# 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'})
Apps Script
// 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'
});
Vai
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.