Anleitung
Mit dem interaktiven Code-Snippet-Tool können Sie API-Anfragen ganz einfach testen und Codebeispiele für diese Anfragen generieren. Für jede Methode werden im Code Code-Snippets für einen oder mehrere Anwendungsfälle angezeigt. Jeder Anwendungsfall beschreibt eine allgemeine Methode zum Aufrufen dieser Methode. Sie können beispielsweise die Methode channels.list
aufrufen, um Daten zu einem bestimmten Kanal oder zum Kanal des aktuellen Nutzers abzurufen.
API-Anfragen ausführen
Sie können Anfragen ausführen, indem Sie neben der Liste der Anfrageparameter auf die Schaltfläche Ausführen klicken. Wenn Sie die Anwendung noch nicht autorisiert haben, in Ihrem Namen API-Anfragen zu senden, werden Sie jetzt dazu aufgefordert. Wenn Ihre Anfrage einen Schreibvorgang ausführt, also mit Ihrem Kanal verknüpfte Ressourcen einfügt, aktualisiert oder löscht, werden Sie außerdem als Vorsichtsmaßnahme aufgefordert, die Ausführung der Anfrage zu bestätigen.
Code-Snippets und vollständige Beispiele ein-/ausblenden
Für jeden Anwendungsfall zeigt das Tool ein Code-Snippet an, das den spezifischen Code für die aufgerufene Methode identifiziert. Jedes Snippet identifiziert die aufgerufene Methode sowie die Parameter- und Property-Werte in der API-Anfrage.
Darüber hinaus zeigt das Tool ein vollständiges Codebeispiel, das dieses Code-Snippet in eine Vorlage setzt, die Boilerplate-Funktionen zum Autorisieren von API-Anfragen und zum Erstellen von API-Anfragen definiert. Mit dem Schieberegler über den Beispielen können Sie zwischen dem Snippet und dem vollständigen Beispiel wechseln:
Vollständige Codebeispiele lokal ausführen
Die vollständigen Codebeispiele sind so konzipiert, dass sie kopiert und lokal ausgeführt werden. Für die Ausführung der vollständigen Codebeispiele gelten die folgenden Voraussetzungen und Einrichtungsschritte:
Voraussetzungen
- Java 1.7 oder höher
- Gradle 2.3 oder höher
Projekt einrichten und Codebeispiele ausführen
-
Erstellen Sie ein Projekt in der API Console und richten Sie Anmeldedaten für eine Webanwendung ein. Legen Sie die autorisierten Weiterleitungs-URIs entsprechend fest.
-
Folgen Sie der Anleitung im API-Java-Schnellstart, um Ihr Projekt vorzubereiten. Ersetzen Sie jedoch den Inhalt der Standarddatei
build.gradle
durch den folgenden Code: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" }
-
Speichern Sie in Ihrem Arbeitsverzeichnis die Datei
client_secrets.json
, die mit Ihren Anmeldedaten verknüpft ist, insrc/main/resources/client_secret.json
. -
Kopieren Sie aus Ihrem Arbeitsverzeichnis das vollständige Codebeispiel nach
src/main/java/ApiExample.java
. Der Klassenname in jedem Beispiel lautetApiExample
, sodass Sie die Dateibuild.gradle
nicht ändern müssen, um verschiedene Beispiele auszuführen. -
Führen Sie das Beispiel über die Befehlszeile aus:
gradle -q run
-
Die meisten Beispiele drucken etwas auf
STDOUT
. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.
-
Erstellen Sie ein Projekt in der API Console und richten Sie Anmeldedaten für eine Webanwendung ein. Legen Sie die autorisierten JavaScript-Quellen fest, um die URL zu identifizieren, von der aus Sie Anfragen senden (z.B.
http://localhost
). -
Kopieren Sie das vollständige Codebeispiel in eine lokale Datei, auf die Ihr Webserver zugreifen kann (z.B.
/var/www/html/example.html
). -
Suchen Sie die Zeile im Codebeispiel, in der die Client-ID für die Anfrage festgelegt ist, und ersetzen Sie den Wert durch die Client-ID für Ihre Anmeldedaten:
gapi.client.init({ 'clientId': 'REPLACE_ME',
-
Öffnen Sie die Datei in Ihrem Browser, z.B.
http://localhost/example.html
. Wir empfehlen, einen Browser mit einer Debugging-Konsole wie Google Chrome zu verwenden. -
Autorisieren Sie die Anfrage, falls erforderlich. Wenn die Anfrage autorisiert ist, sollte in der Debugging-Konsole die API-Antwort auf die Anfrage als JSON-Objekt angezeigt werden.
Voraussetzungen
- Node.js muss installiert sein.
- Das Paketverwaltungstool npm ist im Lieferumfang von Node.js enthalten.
- Die Google APIs-Clientbibliothek für Node.js:
npm install googleapis --save
- Zugriff auf das Internet und einen Webbrowser.
- Ein Google-Konto.
Projekt einrichten und Codebeispiele ausführen
-
Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.
-
Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei
client_secret.json
in einer lokalen Datei. -
Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei
client_secret.json
oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird. -
Führen Sie das Beispiel über die Befehlszeile aus:
node sample.js
-
Bei den meisten Beispielen wird etwas an
STDOUT
oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.
Voraussetzungen
- Python 2.6 oder höher
- Das pip-Paketverwaltungstool
- Die Google APIs-Clientbibliothek für Python:
pip install --upgrade google-api-python-client
- google-auth, google-auth-oauthlib und google-auth-httplib2 zur Nutzerautorisierung
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
- Das Flask Python-Framework für Webanwendungen (wenn Sie die Python-Beispiele für Webserveranwendungen ausführen).
pip install --upgrade flask
- Die HTTP-Anfragenanfrage.
pip install --upgrade requests
Projekt einrichten und Codebeispiele ausführen
-
Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie beim Einrichten Ihrer Anmeldedaten für die Anwendung, die das Flask-Python-Framework für Webanwendungen verwendet, den Anwendungstyp auf Webanwendung fest und legen Sie auch autorisierte Weiterleitungs-URIs für diese Anmeldedaten fest. Setzen Sie andernfalls den Anwendungstyp auf Other.
-
Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei
client_secret.json
in einer lokalen Datei. -
Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei
client_secret.json
oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird. -
Führen Sie das Beispiel über die Befehlszeile aus:
python sample.py
Hinweis für Beispiele für Webserveranwendungen:
Wenn Sie die Python-Beispiele für Webserveranwendungen ausführen, wird beim Ausführen des Skripts ein lokaler Webserver gestartet. Um die API-Anfrage auszuführen, müssen Sie die bereitgestellte Webseite in einem Browser aufrufen. Die Python-Beispiele, die das Flask-Framework für Webanwendungen verwenden, enthalten beispielsweise folgende Zeile:
app.run('localhost', 8080, debug=True)
Dieser Code startet einen lokalen Webserver unterhttp://localhost:8080
. Das Skript versucht jedoch erst, eine API-Anfrage auszuführen, wenn Siehttp://localhost:8080
in einem Browser öffnen. (Die URL für Ihren lokalen Server muss auch als autorisierter Weiterleitungs-URI für Ihre Anmeldedaten festgelegt sein.) -
Bei den meisten Beispielen wird etwas an
STDOUT
oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.
Voraussetzungen
- PHP 5.4 oder höher mit installierter Befehlszeile und JSON-Erweiterung
- Das Abhängigkeitsmanagement-Tool Composer
- Die Google APIs-Clientbibliothek für PHP:
php composer.phar require google/apiclient:^2.0
Projekt einrichten und Codebeispiele ausführen
-
Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.
-
Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei
client_secret.json
in einer lokalen Datei. -
Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei
client_secret.json
oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird. -
Führen Sie das Beispiel über die Befehlszeile aus:
php sample.php
-
Bei den meisten Beispielen wird etwas an
STDOUT
oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.
Voraussetzungen
- Ruby 2.0 oder höher
- Die Google APIs-Clientbibliothek für Ruby:
gem install google-api-client
Projekt einrichten und Codebeispiele ausführen
-
Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.
-
Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei
client_secret.json
in einer lokalen Datei. -
Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei
client_secret.json
oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird. -
Führen Sie das Beispiel über die Befehlszeile aus:
ruby sample.rb
-
Bei den meisten Beispielen wird etwas an
STDOUT
oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.
-
Erstellen Sie ein Projekt in der API Console und richten Sie OAuth 2.0-Anmeldedaten in der Google API Console ein. Legen Sie bei der Einrichtung Ihrer Anmeldedaten den Anwendungstyp auf Sonstiges fest.
-
Speichern Sie die mit Ihren Anmeldedaten verknüpfte Datei
client_secret.json
in einer lokalen Datei. -
Kopieren Sie das vollständige Codebeispiel in eine lokale Datei im selben Verzeichnis wie die Datei
client_secret.json
oder ändern Sie das Beispiel so, dass der Speicherort der Datei korrekt angegeben wird. -
Führen Sie das Beispiel über die Befehlszeile aus:
go run sample.go
-
Bei den meisten Beispielen wird etwas an
STDOUT
oder, bei Web-App-Beispielen, auf der aktuellen Webseite gedruckt. Du kannst auch auf der YouTube-Website nachsehen, wie sich Ersuchen auswirken, die Daten schreiben, wie beispielsweise Anfragen zu Playlists oder Kanalabschnitten.
Standardfunktionen verwenden
Wie oben erwähnt, wird in vollständigen Codebeispielen Boilerplate-Code zum Autorisieren und Erstellen von API-Anfragen verwendet. Die Funktion build_resource
in Python-Beispielen verwendet beispielsweise ein Wörterbuch, das Ressourcenwerte ihren Werten zuweist, um eine Ressource zu erstellen, die eingefügt oder aktualisiert werden kann. Ähnliche Funktionen sind für JavaScript, PHP, Ruby, Go und Apps Script verfügbar.
Die folgenden Tabs zeigen beispielsweise, wie die Standardfunktionen zum Erstellen von Ressourcen aufgerufen werden, um eine playlist
-Ressource zu erstellen. Die Standardfunktionen müssen nicht wissen, welche Art von Ressource erstellt wird.
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)
Vorhandene Ressourcen laden
Wenn Sie eine Anfrage zum Aktualisieren einer vorhandenen Ressource testen möchten, können Sie die aktuellen Attributwerte für diese Ressource in das Aktualisierungsformular laden. Wenn du beispielsweise Metadaten zu einem Video aktualisieren möchtest, gib die Video-ID in das Feld „id
“ ein und klicke auf die Schaltfläche Ressource laden. Die aktuellen Property-Werte werden in das Formular geladen und Sie können nur die Werte aktualisieren, die Sie ändern möchten.
![](https://developers.google.cn/static/youtube/images/interactive-snippet-load-resource.png?authuser=6&hl=de)