Instructions
L'outil d'extraits de code interactifs vous permet de tester facilement les requêtes API et de générer des exemples de code spécifiques à ces requêtes. Pour une méthode donnée, l'outil affiche des extraits de code pour un ou plusieurs cas d'utilisation, et chaque cas d'utilisation décrit une manière courante d'appeler cette méthode. Par exemple, vous pouvez appeler la méthode channels.list pour récupérer des données sur une chaîne spécifique ou sur la chaîne de l'utilisateur actuel.
Exécuter des requêtes API
Vous pouvez exécuter des requêtes en cliquant sur le bouton Exécuter à côté de la liste des paramètres de requête. Si vous n'avez pas encore autorisé l'application à envoyer des requêtes API en votre nom, vous serez invité à le faire. Par mesure de précaution supplémentaire, si votre requête effectue une opération d'écriture (insertion, mise à jour ou suppression de ressources associées à votre chaîne), vous serez invité à confirmer que vous souhaitez exécuter la requête avant qu'elle ne soit réellement exécutée.

Basculer entre les extraits de code et les exemples complets
Pour chaque cas d'utilisation, l'outil affiche un extrait de code qui identifie le code spécifique à la méthode particulière appelée. Chaque extrait identifie la méthode appelée, ainsi que les valeurs des paramètres et des propriétés utilisées dans la requête API.
De plus, l'outil affiche également un exemple de code complet qui place cet extrait de code dans un modèle qui définit des fonctions standards pour autoriser les requêtes API et les construire. Vous pouvez utiliser le curseur au-dessus des exemples pour basculer entre l'extrait et l'exemple complet :

Exécuter des exemples de code complet en local
Les exemples de code complet sont conçus pour être copiés et exécutés en local. Veuillez noter les conditions préalables et les étapes de configuration suivantes pour exécuter les exemples de code complet :
Conditions préalables
- Java 1.7 ou version ultérieure
- Gradle 2.3 ou version ultérieure
Configurer votre projet et exécuter des exemples de code
-
Créez un projet dans la console Cloud et configurez des identifiants pour une application Web. Définissez les URI de redirection autorisés de manière appropriée.
-
Suivez les instructions du guide de démarrage rapide de l'API Java pour préparer votre projet, mais remplacez le contenu du fichier
build.gradlepar défaut par le code suivant :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" } -
Dans votre répertoire de travail, enregistrez le fichier
client_secrets.jsonassocié à vos identifiants danssrc/main/resources/client_secret.json. -
Dans votre répertoire de travail, copiez l'exemple de code complet dans
src/main/java/ApiExample.java. (Le nom de classe de chaque exemple estApiExample, de sorte que vous n'avez pas besoin de modifier le fichierbuild.gradlepour exécuter différents exemples.) -
Exécutez l'exemple à partir de la ligne de commande :
gradle -q run
-
La plupart des exemples affichent quelque chose dans
STDOUT. Vous pouvez également consulter le site Web YouTube pour voir les effets des requêtes qui écrivent des données, telles que les requêtes qui créent des playlists ou des sections de chaîne.
-
Créez un projet dans la console Cloud et configurez des identifiants pour une application Web. Définissez les origines JavaScript autorisées pour identifier l'URL à partir de laquelle vous enverrez des requêtes (par exemple,
http://localhost). -
Copiez l'exemple de code complet dans un fichier local accessible à votre serveur Web (par exemple,
/var/www/html/example.html). -
Recherchez la ligne de l'exemple de code qui définit l'ID client à utiliser pour la requête, puis remplacez la valeur par l'ID client de vos identifiants :
gapi.client.init({ 'clientId': 'REPLACE_ME', -
Ouvrez le fichier dans votre navigateur (par exemple,
http://localhost/example.html). Il est recommandé d'utiliser un navigateur avec une console de débogage, tel que Google Chrome. -
Autorisez la requête si nécessaire. Si la requête est autorisée, la console de débogage doit afficher la réponse de l'API à la requête sous la forme d'un objet JSON.
Conditions préalables
- Node.js doit être installé.
- L'outil de gestion des packages npm (fourni avec Node.js).
- La bibliothèque cliente des API Google pour Node.js :
npm install googleapis --save
- Accès à Internet et à un navigateur Web.
- Un compte Google.
Configurer votre projet et exécuter des exemples de code
-
Créez un projet dans la console Cloud et configurez des identifiants OAuth 2.0 dans la console Google Cloud. Lorsque vous configurez vos identifiants, définissez le type d'application sur Autre.
-
Enregistrez le fichier
client_secret.jsonassocié à vos identifiants dans un fichier local. -
Copiez l'exemple de code complet dans un fichier local situé dans le même répertoire que le fichier
client_secret.json(ou modifiez l'exemple pour identifier correctement l'emplacement de ce fichier). -
Exécutez l'exemple à partir de la ligne de commande :
node sample.js
-
La plupart des exemples affichent quelque chose dans
STDOUTou, pour les exemples d'applications Web, dans la page Web que vous consultez. Vous pouvez également consulter le site Web YouTube pour voir les effets des requêtes qui écrivent des données, telles que les requêtes qui créent des playlists ou des sections de chaîne.
Conditions préalables
- Python 2.6 ou version ultérieure
- L'outil de gestion des packages pip
- La bibliothèque cliente des API Google pour Python :
pip install --upgrade google-api-python-client
- google-auth, google-auth-oauthlib et google-auth-httplib2 pour l'autorisation des utilisateurs.
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
- Le framework d'application Web Python Flask (si vous exécutez les exemples Python pour les applications de serveur Web).
pip install --upgrade flask
- La bibliothèque HTTP requests.
pip install --upgrade requests
Configurer votre projet et exécuter des exemples de code
-
Créez un projet dans la console Cloud et configurez des identifiants OAuth 2.0 dans la console Google Cloud. Lorsque vous configurez vos identifiants, définissez le type d'application sur Application Web pour les exemples qui utilisent le framework d'application Web Python Flask, et définissez également les URI de redirection autorisés pour ces identifiants. Sinon, définissez le type d'application sur Autre.
-
Enregistrez le fichier
client_secret.jsonassocié à vos identifiants dans un fichier local. -
Copiez l'exemple de code complet dans un fichier local situé dans le même répertoire que le fichier
client_secret.json(ou modifiez l'exemple pour identifier correctement l'emplacement de ce fichier). -
Exécutez l'exemple à partir de la ligne de commande :
python sample.py
Remarque concernant les exemples d'applications de serveur Web :
Si vous exécutez les exemples Python pour les applications de serveur Web, l'exécution du script démarre un serveur Web local. Pour exécuter réellement la requête API, vous devez accéder à la page Web diffusée dans un navigateur. Par exemple, les exemples Python qui utilisent le framework d'application Web Flask contiennent une ligne comme celle-ci :
app.run('localhost', 8080, debug=True)
Ce code démarre un serveur Web local surhttp://localhost:8080. Toutefois, le script n'essaie pas d'exécuter une requête API tant que vous n'accédez pas àhttp://localhost:8080dans un navigateur. (L'URL de votre serveur local doit également être définie comme URI de redirection autorisé pour vos identifiants d'autorisation.) -
La plupart des exemples affichent quelque chose dans
STDOUTou, pour les exemples d'applications Web, dans la page Web que vous consultez. Vous pouvez également consulter le site Web YouTube pour voir les effets des requêtes qui écrivent des données, telles que les requêtes qui créent des playlists ou des sections de chaîne.
Conditions préalables
- PHP 5.4 ou version ultérieure avec l'interface de ligne de commande (CLI) et l'extension JSON installées.
- L'outil de gestion des dépendances Composer.
- La bibliothèque cliente des API Google pour PHP :
php composer.phar require google/apiclient:^2.0
Configurer votre projet et exécuter des exemples de code
-
Créez un projet dans la console Cloud et configurez des identifiants OAuth 2.0 dans la console Google Cloud. Lorsque vous configurez vos identifiants, définissez le type d'application sur Autre.
-
Enregistrez le fichier
client_secret.jsonassocié à vos identifiants dans un fichier local. -
Copiez l'exemple de code complet dans un fichier local situé dans le même répertoire que le fichier
client_secret.json(ou modifiez l'exemple pour identifier correctement l'emplacement de ce fichier). -
Exécutez l'exemple à partir de la ligne de commande :
php sample.php
-
La plupart des exemples affichent quelque chose dans
STDOUTou, pour les exemples d'applications Web, dans la page Web que vous consultez. Vous pouvez également consulter le site Web YouTube pour voir les effets des requêtes qui écrivent des données, telles que les requêtes qui créent des playlists ou des sections de chaîne.
Conditions préalables
- Ruby 2.0 ou version ultérieure
- La bibliothèque cliente des API Google pour Ruby :
gem install google-api-client
Configurer votre projet et exécuter des exemples de code
-
Créez un projet dans la console Cloud et configurez des identifiants OAuth 2.0 dans la console Google Cloud. Lorsque vous configurez vos identifiants, définissez le type d'application sur Autre.
-
Enregistrez le fichier
client_secret.jsonassocié à vos identifiants dans un fichier local. -
Copiez l'exemple de code complet dans un fichier local situé dans le même répertoire que le fichier
client_secret.json(ou modifiez l'exemple pour identifier correctement l'emplacement de ce fichier). -
Exécutez l'exemple à partir de la ligne de commande :
ruby sample.rb
-
La plupart des exemples affichent quelque chose dans
STDOUTou, pour les exemples d'applications Web, dans la page Web que vous consultez. Vous pouvez également consulter le site Web YouTube pour voir les effets des requêtes qui écrivent des données, telles que les requêtes qui créent des playlists ou des sections de chaîne.
-
Créez un projet dans la console Cloud et configurez des identifiants OAuth 2.0 dans la console Google Cloud. Lorsque vous configurez vos identifiants, définissez le type d'application sur Autre.
-
Enregistrez le fichier
client_secret.jsonassocié à vos identifiants dans un fichier local. -
Copiez l'exemple de code complet dans un fichier local situé dans le même répertoire que le fichier
client_secret.json(ou modifiez l'exemple pour identifier correctement l'emplacement de ce fichier). -
Exécutez l'exemple à partir de la ligne de commande :
go run sample.go
-
La plupart des exemples affichent quelque chose dans
STDOUTou, pour les exemples d'applications Web, dans la page Web que vous consultez. Vous pouvez également consulter le site Web YouTube pour voir les effets des requêtes qui écrivent des données, telles que les requêtes qui créent des playlists ou des sections de chaîne.
Utiliser des fonctions standards
Comme indiqué ci-dessus, les exemples de code complet utilisent du code récurrent pour autoriser et construire des requêtes API. Par exemple, la fonction build_resource dans les exemples Python utilise un dictionnaire qui mappe les propriétés de la ressource à leurs valeurs pour construire une ressource qui peut être insérée ou mise à jour. Des fonctions similaires sont fournies pour JavaScript, PHP, Ruby, Go et Apps Script.
Par exemple, les onglets ci-dessous montrent comment les fonctions standards de création de ressources seraient appelées pour construire une ressource playlist. Notez que les fonctions standards n'ont pas besoin de savoir quel type de ressource est créé.
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)Charger des ressources existantes
Pour tester une requête de mise à jour d'une ressource existante, vous pouvez charger les valeurs de propriété actuelles de cette ressource dans le formulaire de mise à jour. Par exemple, pour mettre à jour les métadonnées d'une vidéo, saisissez l'ID vidéo dans le champ de propriété id, puis cliquez sur le bouton Charger la ressource. Les valeurs de propriété actuelles sont chargées dans le formulaire, et vous pouvez mettre à jour uniquement les valeurs que vous souhaitez modifier.