SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 259 visiteurs en ce moment

Accueil > Squelettes > Tutoriels pour squelettes > Boucle (DATA) avec l’API Youtube

Boucle (DATA) avec l’API Youtube

25 août 2014 – par Mathieu – commentaires

3 votes

Les boucles (DATA) et les itérateurs sont bien pratiques. Ils vont permettre à Spip de boucler sur des sources externes à la base de données du site (fichiers externes, API, etc...).

Voila un exemple de boucle pour lister les dernières vidéos (ici les 2 dernières) d’une chaine Youtube, en utilisant l’api Google Youtube V3 et la boucle DATA.

Pré-requis :

Bon à savoir : L’API Youtube retourne des objets au format Json, on va donc utiliser l’itérateur du même nom.

La boucle « BOUCLE_youtube » va retourner les 2 dernières vidéos de la chaine Youtube. Dans la source, il faut remplacer CLE_API_GOOGLE par votre cle API Google et ID_CHAINE_YOUTUBE par l’identifiant de la chaine Youtube.

La boucle « BOUCLE_youtube_details » va retourner toutes les infos sur une vidéos (miniature, titre, durée...). Dans la source, il faut remplacer CLE_API_GOOGLE par votre cle API Google.

  1. <B_youtube>
  2. <ul>
  3. <BOUCLE_youtube(DATA)
  4. {source json,'https://www.googleapis.com/youtube/v3/search?key=CLE_API_GOOGLE&channelId=ID_CHAINE_YOUTUBE&part=id&order=date&maxResults=2'}
  5. {datapath /items}
  6. {0,2}
  7. >
  8. <li>
  9. <BOUCLE_youtube_details(DATA){source json,#VAL{'https://www.googleapis.com/youtube/v3/videos?key=CLE_API_GOOGLE&part=snippet,contentDetails&id='}|concat{#VALEUR{id}|get_object_vars|table_valeur{videoId}}}
  10. {datapath /items}
  11. {0,1}
  12. >
  13. <ul>
  14. [<li class="video_image"><a href="http://www.youtube.com/watch?v=#VALEUR{id}" rel="external"><img src="(#VALEUR{snippet}|get_object_vars|table_valeur{thumbnails}|get_object_vars|table_valeur{standard}|get_object_vars|table_valeur{url})" alt="" /></a></li>]
  15. [<li class="video_titre">(#VALEUR{snippet}|get_object_vars|table_valeur{title})</li>]
  16. <li class="video_duree">[(#VALEUR{contentDetails}|get_object_vars|table_valeur{duration}|match{(\d+)H}|replace{'H',''}):][(#VALEUR{contentDetails}|get_object_vars|table_valeur{duration}|match{(\d+)M}|replace{'M',''})][:(#VALEUR{contentDetails}|get_object_vars|table_valeur{duration}|match{(\d+)S}|replace{'S',''})]</li>
  17. </ul>
  18. </BOUCLE_youtube_details>
  19. </li>
  20. </BOUCLE_youtube>
  21. </ul>
  22. </B_youtube>
  23. <//B_youtube>

Télécharger

Comme l’API retourne des objets et non des tableaux, on est obligé de passer par la fonction php get_object_vars() pour récupérer les valeurs.

Les informations sur le format des données retournées est disponible ici : https://developers.google.com/youtube/v3/docs/videos

Attention : il faut avoir l’extension Php Openssl activé sur votre serveur.

Dernière modification de cette page le 26 août 2014

Retour en haut de la page

Vos commentaires

  • Le 1er juin 2015 à 12:06, par eidôlon En réponse à : Boucle (DATA) avec l’API Youtube

    Salut, merci pour l’exemple j’ai dû faire les modifications suivantes pour le faire fonctionner :

    -  suppression des get_object_vars()
    -  la ligne

    1. <img src="(#VALEUR{snippet}|get_object_vars|table_valeur{thumbnails}|get_object_vars|table_valeur{standard}|get_object_vars|table_valeur{url})" alt="" />

    devient

    1. [<img src="(#VALEUR{snippet}|table_valeur{thumbnails}|table_valeur{high}|table_valeur{url})" class="img-responsive" alt="" />]

    valeurs possibles pour thumbnails : object

    Valid key values are :
    default – The default thumbnail image for this resource. The default thumbnail for a video – or a resource that refers to a video, such as a playlist item or search result – is 120px wide and 90px tall. The default thumbnail for a channel is 88px wide and 88px tall.
    medium – A higher resolution version of the thumbnail image. For a video (or a resource that refers to a video), this image is 320px wide and 180px tall. For a channel, this image is 240px wide and 240px tall.
    high – A high resolution version of the thumbnail image. For a video (or a resource that refers to a video), this image is 480px wide and 360px tall. For a channel, this image is 800px wide and 800px tall.

    API YouTube

    Répondre à ce message

  • Le 24 septembre 2014 à 11:07, par freedfromparis En réponse à : Boucle (DATA) avec l’API Youtube

    Excellent article !!! Merci !

    Je chercher à faire un truc un peu plus sioux, je voudrais faire un peu comme le système de syndication c’est à dire proposer de créer des articles à chaque nouvelle vidéo postée sur une chaine Youtube

    Une idée de comment faire cela ?

    Merci d’avance.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Accès Restreint Partiel

    8 septembre 2014 – 20 commentaires

    Voulez-vous masquer une partie du contenu de vos articles aux visiteurs de passage ? et réserver la totalité à certains de vos membres ? Voulez-vous remplacer le contenu occulté par un appel à l’action (pour devenir Membre, bla bla bla...) ? Le (...)

  • Site multilingue facile

    3 mai 2012 – 97 commentaires

    Site multilingue facile permet de mettre en place facilement un site multilingue avec une langue par secteur. Introduction Même si le multilinguisme est nativement intégré dans spip, réaliser un site multilingue n’est pas toujours évident. Ce (...)

  • Nivo Slider

    2 mars 2011 – 452 commentaires

    Nivo Slider pour SPIP permet d’intégrer des diaporamas en JQuery dans vos articles et squelettes.

  • Ferme à SPIP

    3 janvier 2008 – 130 commentaires

    Un petit article synthétique qui explique en quelques mots et captures d’écrans comment faire une « ferme à SPIP » avec le plugin "Mutualisation" à partir d’un nom de domaine principal.

  • Module de paiement Paypal Express Checkout

    12 juin 2015 – commentaires

    Ce mode de paiement par Paypal Express Checkout est sécurisé et peut-être utilisé en toute confiance. Il permet également, dans le cadre de certaines boutiques, d’optimiser le workflow de paiement en sautant l’étape de création de compte et en (...)

Ça spipe par là