Snippet di codice delle API di dati

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:

Java

Prerequisiti

  • Java 1.7 o versione successiva
  • Gradle 2.3 o versioni successive

Configura il progetto ed esegui 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 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"
    }
  3. Nella directory di lavoro, salva il file client_secrets.json associato alle tue credenziali in src/main/resources/client_secret.json.

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

  5. Esegui l'esempio dalla riga di comando:

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

di Gemini Advanced.
.
.
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, 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',
  4. Apri il file nel browser (ad es. 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 è autorizzata, la console di debug dovrebbe visualizzare la risposta dell'API alla richiesta come oggetto JSON.

di Gemini Advanced.
.
.
Node.js

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

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

  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 (oppure modifica l'esempio per identificarne correttamente la posizione.

  4. Esegui l'esempio dalla riga di comando:

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

di Gemini Advanced.
.
.
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 progetto ed esegui esempi di codice

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

  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 (oppure modifica l'esempio per identificarne correttamente la posizione.

  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 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 ore http://localhost:8080. Tuttavia, lo script non tenta di eseguire una richiesta API finché non passi effettivamente a http://localhost:8080 in un browser. L'URL del server locale deve essere inoltre impostato come URI di reindirizzamento autorizzato per le credenziali di autorizzazione.
  5. 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.

di Gemini Advanced.
.
.
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 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

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

  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 (oppure modifica l'esempio per identificarne correttamente la posizione.

  4. Esegui l'esempio dalla riga di comando:

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

di Gemini Advanced.
.
.
Rosso rubino

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

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

  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 (oppure modifica l'esempio per identificarne correttamente la posizione.

  4. Esegui l'esempio dalla riga di comando:

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

di Gemini Advanced.
.
.
Apps Script
di Gemini Advanced. Segui le istruzioni per attivare i servizi Google avanzati in modo da attivare le funzionalità di YouTube.
di Gemini Advanced.
Vai
  1. 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.

  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 (oppure modifica l'esempio per identificarne correttamente la posizione.

  4. Esegui l'esempio dalla riga di comando:

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

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'));
Rosso rubino
# 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 delle proprietà correnti vengono caricati nel modulo e puoi aggiornare solo quelli che vuoi modificare.