SlideShare une entreprise Scribd logo
1  sur  15
1Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Enrichir vos contenus Wordpress avec les API
Fabien ELHARRAR
Une présentation pour grosses feignasses
et Black Hat SEO wanabee
WPTech 2015
2Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Qui suis-je ?
Fabien ELHARRRAR
 Ingénieur en Mécanique + MBA en Marketing
 10 ans de Consulting en Management (Peugeot, Orange, TF1, Lacoste, etc.)
 Editeur web depuis 2012
 Consultant free-lance en Monétisation web
J’édite seul plus de 20 sites internet
 500.000 pages vues par mois
 Reach Facebook > 5 millions / semaine
…
Un bon ingénieur est un ingénieur feignant
3Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Dis papa c’est quoi une API ?
Application Programming Interface
Une API est une ensemble normalisé de classes, de méthodes ou de fonctions qui
permettent d’interagir avec un service web.
Les APIs permettent entre autres de récupérer des données structurées stockées chez un
Tiers en mode lecture.
Dans ce cas précis, cela revient plus ou moins à consulter une base données qui ne se trouve
pas sur votre serveur.
La plupart des APIs sont gratuites dans la limite d’un nombre de requêtes par jour
et passent ensuite payantes.
Par conséquent une grande majorité d’APIs nécessitent une authentification.
A quoi ça peut bien me servir ?
A enrichir vos contenus dynamiquement, ce qui plaira aux internautes et à Google :
 Gain de temps (recherche et saisie)
 Fraicheur des données
4Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Quelques exemples d’utilisation des API
Drapeau
Devise
Langue
Indicatif pays
Météo
Avis Google
je-voyage.net
pix-geeks.com
Cover photo
Année
Network
Description
Planning épisodes
Fiche personnage
5Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Où trouver les API dont vous avez besoin ?
2 annuaires d’API de référence
Il existe des dizaines de milliers d’APIs sur internet.
Elles ne sont pas toujours bien documentées, et sont parfois même officieuses (API Allociné)
Les résultats sont généralement restitués aux formats JSON ou XML
2 directories de référence permettent de trouver presque tout :
 5.000+ API publicapis.com
 14.000+ API programmableweb.com
Quelques API que j’utilise quotidiennement
 Réseaux sociaux : Twitter, Facebook, Youtube, Sharedcount, Klout
 Contenus : Betaseries, Comicvine, Marvel, TheMovieDB, OMDBapi, Discogs, Chartlyrics,
Audioscrobbler, iTunes
 Traduction : DetectLanguage, MicrosoftTranslator
 Géolocalisation : OpenWeatherMap, Google Maps
 Etc.
6Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
XML : un format structuré mais pas toujours pratique
$xml_response = '
<movies>
<movie>
<title>WPTech Movie</title>
<plot>Le monde merveilleux de Wordpress</plot>
<rating type="stars">10</rating>
<characters>
<character>
<name>Ms Coder</name>
<actor>Angelina Jolie</actor>
</character>
<character>
<name>Mr Coder</name>
<actor>Daniel Roch</actor>
</character>
</characters>
</movie>
<movie>…</movie>
</movies>';
$result = new SimpleXMLElement($xml_response);
echo $result->movie[0]->title;
echo "<ul>";
foreach ($result->movie->characters->character as $character){
echo "<li>". $character->name . " joué par " . $character->actor. "</li>";
}
echo "</ul>";
XPATH EST
TON AMI
XPATH EST
TON AMI
7Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
JSON : un format flexible de plus en plus répandu
$json_response = '{
"movies": [{
"title": "WPTech Movie",
"rating": "10",
"plot": "Le monde merveilleux de Wordpress",
"characters": [{
"name":"Ms Coder",
"actor":"Angelina Jolie"
},{
"name":"Mr Coder",
"actor":"Daniel Roch"
}]
},{ … } ]
}';
$result = json_decode($json_response, true);
echo $result['movies'][0]['title'];
echo "<ul>";
foreach ($result['movies'][0]['characters'] as $character){
echo "<li>". $character['name'] . " joué par " . $character['actor']. "</li>";
}
echo "</ul>";
8Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Utilisez les API avec précaution
Une forte consommation de ressources serveur
Récupérer du contenu externe via file_get_contents ou curl peut rapidement faire tomber
une petite configuration (serveur mutualisé)
Un temps de réponse parfois long
Certaines APIs mettent plusieurs secondes pour répondre à vos requêtes.
Modifiez les paramètres de votre serveur Apache ou rajoutez une ligne dans votre php.ini
max_execution_time = 30
Evitez les traitement groupés
Il est tentant de peupler toute une base de données via un batch, mais :
 La plupart des APIs ont des limites en nombre de requêtes par secondes
 Sont payantes au-delà d’un certain nombre de requêtes par jour
 Bloqueront votre compte / l’IP de votre serveur en cas d’usage abusif
Appelez les APIs uniquement quand vous en avez besoin cad à l’affichage d’une page
(init ou update de données via API)
9Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Les caches sont vos amis … il faut les aimer aussi
Mettez les données récupérées via API en cache
 Stockez systématiquement les données récupérées via API en base de donnée ou dans
des fichiers plats.
 Stockez systématiquement une date de mise à jour.
 Lors de l’affichage d’un contenu mash-up ne requêtez l’API que si vos données sont
périmées.
Utilisez un plug-in de cache
L'erreur est humaine mais un véritable désastre nécessite un ordinateur.
Bill
Gates
Toute forme d’automatisation présente des risques. Une erreur dans le code et
votre serveur se mettra à ramer s’il ne plante pas carrément…
Utilisez systématiquement un plug-in de cache statique pour éviter les surcharges
serveur liées aux passages de Bots ou aux pics de fréquentation.
10Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Où stocker les données récupérées via API ?
Variables temporaires
Transients
Articles
Custom fields
Table d’options
wp_options
 Données à rafraichir de façon
cyclique (compteurs)
 Widgets
 Données relativement
statiques
 Valeurs de tris
 Champs administrables dans
le backoffice
set_transient($transient, $value,
$expiration);
get_transient($transient);
update_post_meta ($post_id, $key,
$value, $prev_value);
get_post_meta($post_id,$key,$single);
update_option ($option, $value,
$autoload);
get_option ($option, $default);
Wordpress crée
automatiquement 1 entrée
dans wp_options pour
déterminer la date à laquelle
les 2 champs seront supprimés
via CRON.
_transient_name
_transient_timeout_name
Pensez à créer une 2ème
entrée avec la date de mise à jour.
Lors de l’affichage de cette valeur vous ferez une comparaison
avec la date courante pour déterminer s’il est nécessaire de faire
une maj via API.
Créez une valeur backup qui sera réutilisée si l’API ne fonctionne pas
11Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Les API et Wordpress : quelques points à retenir
Pour réduire la charge serveur liée aux API
 Activez un plug-in de cache
 Appelez vos fonctions depuis single.php et sidebar.php
 Contrôlez de la date de dernière mise à jour
 Appelez l’API uniquement à ce moment là si nécessaire
 Stockez ces données localement
Régulièrement l’API ne fonctionnera pas
 Limite de requêtes dépassée
 Downtown du service appelé
 Timeout
 API dépréciée
Comparez systématiquement les données rapatriées
 à celles stockées en base (custom fields, wp_options)
 à un champs de « backup » dans wp_option
12Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Exemple : compte des partages sociaux d’un article
function get_share_count($post_ID, $timeout = 1500){
$apikey = "1234567890AZERTYUIOP";
$url = get_permalink($post_ID);
$count = get_transient('share_count_'.$post_ID);
if (!$count) {
$count = get_option('backup_share_count_'.$post_ID);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://free.sharedcount.com/?url=" . rawurlencode($url) . "&apikey=" . $apikey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$shares = json_decode($output, true);
if (!is_wp_error($shares) && !$shares['Error']) {
$count_twitter = $shares['Twitter'];
$count_facebook = $shares['Facebook']['total_count'];
$count_google = $shares['GooglePlusOne'];
$count_pinterest = $shares['Pinterest'];
$count_linkedin = $shares['LinkedIn'];
$total_count = $count_twitter + $count_facebook + $count_pinterest + $shares_linkedin + $shares_google;
if ($total_count > $count) {
$count = $total_count;
update_option('backup_share_count_'.$post_ID, $count);
update_post_meta($post_ID, 'shared_count',$count);
}
set_transient('share_count_'.$post_ID, intval($count), $timeout);
}
}
return $count;
}
13Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Et s’il n’existe pas d’API ?
Il n’existe pas toujours d’API répondant à vos besoins. Si l’information cherchée est
disponible sur une page web publique vous pouvez toujours la scrapper (la télécharger) pour
en extraire des données.
Récupérer le nombre de contacts Viadeo d’un compte
function get_viadeo_count($viadeo_account, $timeout = 14000) {
$contacts = get_transient('viadeo_contacts_'.$viadeo_account);
if (!$contacts){
$string = file_get_contents("http://fr.viadeo.com/fr/profile/".$vurl);
$string = eregi_replace('<p><span>','',$string);
$string = eregi_replace('</span>contacts','',$string);
if (preg_match('~gridUnit grid1of2 brd tac contact">(.*?)</~', $string, $match)!=0)
{ $contacts = $match[1]; }
if ($contacts) { update_option( 'backup_viadeo_contacts_'.$viadeo_account, $contacts ); }
else { $contacts = get_option('backup_viadeo_contacts_'.$viadeo_account); }
set_transient('viadeo_contacts_'.$viadeo_account, intval($contacts), $timeout);
}
return $contacts;
}
Pour aller plus loin sur le scrapping :
 XPath : langage permettant d’extraire des portions de documents XML
 RDDZ Scrapper : un des meilleurs logiciels utilisant XPath
OUI JE SUIS
NUL EN REGEXP
OUI JE SUIS
NUL EN REGEXP
14Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Créer votre propre API pour faire communiquer vos sites
Pour intégrer des contenus entre plusieurs sites, vous pouvez utiliser des iframes,
faire des requêtes $wpdb sur un WP Multisite, etc. ou créer une petite API privée
Créez une page en noindex avec un custom template :
<?php
/* Template Name: Mon API privée */
if (isset($_GET['parameter'])) {
$parameter = $_GET['parameter'];
$args = array(…);
$my_query = new WP_Query($args);
$response = array('data_1' => …, 'data_2' => …);
echo json_encode($response);
}
?>
Exemple d’intégration entre 2 sites via API privée
provient de
http://monsite.com/api?parameter=toto
15Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Questions / Réponses
Fabien ELHARRAR
Consultant en Monétisation Web
+33 6 66 20 36 98
fabien.elharrar@pxnetwork.fr
Fabien ELHARRAR
Consultant en Monétisation Web
+33 6 66 20 36 98
fabien.elharrar@pxnetwork.fr
.com
Restons en contact
On cherche des
rédacteurs Wordpress

Contenu connexe

Tendances

Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Ghilas BELHADJ
 
Conversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPressConversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPressChi Nacim
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
Les 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPressLes 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPressNicolas Richer
 
Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015Harvey Francois
 
Sécuriser un site Wordpress
Sécuriser un site WordpressSécuriser un site Wordpress
Sécuriser un site Wordpressbestyuna
 
Optimiser les performances dans Wordpress
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans WordpressNicolas Juen
 
Creation de-themes-wp
Creation de-themes-wpCreation de-themes-wp
Creation de-themes-wpChi Nacim
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webIZZA Samir
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Manuel wordpress ad avenue
Manuel wordpress   ad avenueManuel wordpress   ad avenue
Manuel wordpress ad avenueFrançois Huynh
 
WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMSAurélien Denis
 
WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMSChi Nacim
 
Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Willy Bahuaud
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetDevclic
 
Trucs et astuces pour rendre votre application Windows Phone 8 plus visible
Trucs et astuces pour rendre votre application Windows Phone 8 plus visibleTrucs et astuces pour rendre votre application Windows Phone 8 plus visible
Trucs et astuces pour rendre votre application Windows Phone 8 plus visibleMicrosoft
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
Formation wp contenu - livret
Formation wp   contenu - livretFormation wp   contenu - livret
Formation wp contenu - livretCaroleTherrien1
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapBassem ABCHA
 

Tendances (20)

Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
 
WordPress + HTTPS
WordPress + HTTPSWordPress + HTTPS
WordPress + HTTPS
 
Conversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPressConversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPress
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
Les 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPressLes 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPress
 
Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015
 
Sécuriser un site Wordpress
Sécuriser un site WordpressSécuriser un site Wordpress
Sécuriser un site Wordpress
 
Optimiser les performances dans Wordpress
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans Wordpress
 
Creation de-themes-wp
Creation de-themes-wpCreation de-themes-wp
Creation de-themes-wp
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du web
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Manuel wordpress ad avenue
Manuel wordpress   ad avenueManuel wordpress   ad avenue
Manuel wordpress ad avenue
 
WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMS
 
WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMS
 
Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Migration de données… Destination WordPress !
Migration de données… Destination WordPress !
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internet
 
Trucs et astuces pour rendre votre application Windows Phone 8 plus visible
Trucs et astuces pour rendre votre application Windows Phone 8 plus visibleTrucs et astuces pour rendre votre application Windows Phone 8 plus visible
Trucs et astuces pour rendre votre application Windows Phone 8 plus visible
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
Formation wp contenu - livret
Formation wp   contenu - livretFormation wp   contenu - livret
Formation wp contenu - livret
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 

En vedette

WPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les pluginsWPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les pluginscorsonr
 
PDFs à la volée avec TCPDF
PDFs à la volée avec TCPDFPDFs à la volée avec TCPDF
PDFs à la volée avec TCPDFJenny Beaumont
 
Master WooCommerce Troubleshooting
Master WooCommerce TroubleshootingMaster WooCommerce Troubleshooting
Master WooCommerce TroubleshootingRodolfo Melogli
 
Cómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpressCómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpressBeatriz González Pozo
 
WooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP SnippetsWooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP SnippetsRodolfo Melogli
 
40 killer content marketing and blogging tools
40 killer content marketing and blogging tools40 killer content marketing and blogging tools
40 killer content marketing and blogging toolsZemanta
 
BAD BUZZ - Le Kit de Survie
BAD BUZZ - Le Kit de SurvieBAD BUZZ - Le Kit de Survie
BAD BUZZ - Le Kit de Surviekhalil trabelsi
 
Presentation 30 juin shake event visionari
Presentation 30 juin shake event  visionariPresentation 30 juin shake event  visionari
Presentation 30 juin shake event visionariPierre Alzingre
 
Motivation day 2014: comment créer une entreprise et générer rapidement du re...
Motivation day 2014: comment créer une entreprise et générer rapidement du re...Motivation day 2014: comment créer une entreprise et générer rapidement du re...
Motivation day 2014: comment créer une entreprise et générer rapidement du re...diaby cheick mohamed
 
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC) Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC) EOI Escuela de Organización Industrial
 
10 conseils pour ameliorer vos publicites facebook
10 conseils pour ameliorer vos publicites facebook10 conseils pour ameliorer vos publicites facebook
10 conseils pour ameliorer vos publicites facebookSocialMixCity
 
Web séminaire : 15 astuces pour doper les performances de vos commerciaux
Web séminaire : 15 astuces pour doper les performances de vos commerciauxWeb séminaire : 15 astuces pour doper les performances de vos commerciaux
Web séminaire : 15 astuces pour doper les performances de vos commerciauxEfficy CRM
 
[Fr] livre blanc : la face cachée de la transformation digitale [Extrait]
[Fr] livre blanc : la face cachée de la transformation digitale [Extrait][Fr] livre blanc : la face cachée de la transformation digitale [Extrait]
[Fr] livre blanc : la face cachée de la transformation digitale [Extrait]Yann Gourvennec
 
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)Beatriz González Pozo
 
Tendance Marketing digital 2016 : le video marketing
Tendance Marketing digital 2016 : le video marketingTendance Marketing digital 2016 : le video marketing
Tendance Marketing digital 2016 : le video marketingSWiTCH
 
[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociaux
[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociaux[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociaux
[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociauxHUB INSTITUTE
 
6 Tools and Software you should use to filter the internet for content curati...
6 Tools and Software you should use to filter the internet for content curati...6 Tools and Software you should use to filter the internet for content curati...
6 Tools and Software you should use to filter the internet for content curati...Brian Fanzo
 
Fiches pratiques Processus projet découverte
Fiches pratiques Processus projet découverteFiches pratiques Processus projet découverte
Fiches pratiques Processus projet découverteSylvain Loubradou
 
Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...
Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...
Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...iProspect France
 

En vedette (20)

WPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les pluginsWPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les plugins
 
PDFs à la volée avec TCPDF
PDFs à la volée avec TCPDFPDFs à la volée avec TCPDF
PDFs à la volée avec TCPDF
 
Master WooCommerce Troubleshooting
Master WooCommerce TroubleshootingMaster WooCommerce Troubleshooting
Master WooCommerce Troubleshooting
 
El trabajo del Community Manager
El trabajo del Community ManagerEl trabajo del Community Manager
El trabajo del Community Manager
 
Cómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpressCómo crear una tienda online en wordpress
Cómo crear una tienda online en wordpress
 
WooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP SnippetsWooCommerce: How to Customize WordPress via PHP Snippets
WooCommerce: How to Customize WordPress via PHP Snippets
 
40 killer content marketing and blogging tools
40 killer content marketing and blogging tools40 killer content marketing and blogging tools
40 killer content marketing and blogging tools
 
BAD BUZZ - Le Kit de Survie
BAD BUZZ - Le Kit de SurvieBAD BUZZ - Le Kit de Survie
BAD BUZZ - Le Kit de Survie
 
Presentation 30 juin shake event visionari
Presentation 30 juin shake event  visionariPresentation 30 juin shake event  visionari
Presentation 30 juin shake event visionari
 
Motivation day 2014: comment créer une entreprise et générer rapidement du re...
Motivation day 2014: comment créer une entreprise et générer rapidement du re...Motivation day 2014: comment créer une entreprise et générer rapidement du re...
Motivation day 2014: comment créer une entreprise et générer rapidement du re...
 
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC) Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
Plataformas de Comercio Electrónico Unificadas, por Javier Hoyos (PwC)
 
10 conseils pour ameliorer vos publicites facebook
10 conseils pour ameliorer vos publicites facebook10 conseils pour ameliorer vos publicites facebook
10 conseils pour ameliorer vos publicites facebook
 
Web séminaire : 15 astuces pour doper les performances de vos commerciaux
Web séminaire : 15 astuces pour doper les performances de vos commerciauxWeb séminaire : 15 astuces pour doper les performances de vos commerciaux
Web séminaire : 15 astuces pour doper les performances de vos commerciaux
 
[Fr] livre blanc : la face cachée de la transformation digitale [Extrait]
[Fr] livre blanc : la face cachée de la transformation digitale [Extrait][Fr] livre blanc : la face cachée de la transformation digitale [Extrait]
[Fr] livre blanc : la face cachée de la transformation digitale [Extrait]
 
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
Instagram para principiantes (INCLUYE NOVEDADES DE SEPTIEMBRE-15)
 
Tendance Marketing digital 2016 : le video marketing
Tendance Marketing digital 2016 : le video marketingTendance Marketing digital 2016 : le video marketing
Tendance Marketing digital 2016 : le video marketing
 
[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociaux
[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociaux[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociaux
[HUBDAY] HUB Institute - 5 tendances 2016 sur le futur des réseaux sociaux
 
6 Tools and Software you should use to filter the internet for content curati...
6 Tools and Software you should use to filter the internet for content curati...6 Tools and Software you should use to filter the internet for content curati...
6 Tools and Software you should use to filter the internet for content curati...
 
Fiches pratiques Processus projet découverte
Fiches pratiques Processus projet découverteFiches pratiques Processus projet découverte
Fiches pratiques Processus projet découverte
 
Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...
Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...
Performance Marketing (Affiliation) : Introduction et Typologies de leviers d...
 

Similaire à Enrichir vos contenus Wordpress avec les API - WPTech 2015

Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsBoiteaweb
 
Techdays 2010 : comment hacker PHP sans se fatiguer
Techdays 2010 : comment hacker PHP sans se fatiguerTechdays 2010 : comment hacker PHP sans se fatiguer
Techdays 2010 : comment hacker PHP sans se fatiguerDamien Seguy
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)Restlet
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxHamzaElgari
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.pptadiouf2
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?OVHcloud
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sqlcecile59
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Cédric Leblond
 
2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutions2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutionse-Xpert Solutions SA
 
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Arnaud Langlade
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Didier Girard
 

Similaire à Enrichir vos contenus Wordpress avec les API - WPTech 2015 (20)

Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
 
Techdays 2010 : comment hacker PHP sans se fatiguer
Techdays 2010 : comment hacker PHP sans se fatiguerTechdays 2010 : comment hacker PHP sans se fatiguer
Techdays 2010 : comment hacker PHP sans se fatiguer
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Rmll.securite
Rmll.securiteRmll.securite
Rmll.securite
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptx
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?
 
Crud+tutorial+fr
Crud+tutorial+frCrud+tutorial+fr
Crud+tutorial+fr
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
 
Audit de site WordPress
Audit de site WordPressAudit de site WordPress
Audit de site WordPress
 
2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutions2018 06 nouvelles APIs checkpoint e-Xpert solutions
2018 06 nouvelles APIs checkpoint e-Xpert solutions
 
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010
 

Plus de PXNetwork

Rapport du Congrès Américain sur les OVNIS
Rapport du Congrès Américain sur les OVNISRapport du Congrès Américain sur les OVNIS
Rapport du Congrès Américain sur les OVNISPXNetwork
 
SMX Paris 2018 : Position zéro le Graal du SEO
SMX Paris 2018 : Position zéro le Graal du SEOSMX Paris 2018 : Position zéro le Graal du SEO
SMX Paris 2018 : Position zéro le Graal du SEOPXNetwork
 
Baromètre nPerf des connexions internet fixes T3 2017
Baromètre nPerf des connexions internet fixes T3 2017Baromètre nPerf des connexions internet fixes T3 2017
Baromètre nPerf des connexions internet fixes T3 2017PXNetwork
 
Baromètre nPerf des opérateurs mobiles au T3 2017
Baromètre nPerf des opérateurs mobiles au T3 2017Baromètre nPerf des opérateurs mobiles au T3 2017
Baromètre nPerf des opérateurs mobiles au T3 2017PXNetwork
 
Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...
Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...
Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...PXNetwork
 
Kit média PIX GEEKS Cinéma / Séries TV
Kit média PIX GEEKS Cinéma / Séries TVKit média PIX GEEKS Cinéma / Séries TV
Kit média PIX GEEKS Cinéma / Séries TVPXNetwork
 
PIX GEEKS Kit Media Jeux Video
PIX GEEKS Kit Media Jeux VideoPIX GEEKS Kit Media Jeux Video
PIX GEEKS Kit Media Jeux VideoPXNetwork
 
Kit media A la tienne.fr
Kit media A la tienne.frKit media A la tienne.fr
Kit media A la tienne.frPXNetwork
 
Kit Media ZeMag
Kit Media ZeMagKit Media ZeMag
Kit Media ZeMagPXNetwork
 
[PUBLIC] Media Kit PIX GEEKS Audiences
[PUBLIC] Media Kit PIX GEEKS Audiences[PUBLIC] Media Kit PIX GEEKS Audiences
[PUBLIC] Media Kit PIX GEEKS AudiencesPXNetwork
 
Kit Media PIX GEEKS [PUBLIC]
Kit Media PIX GEEKS [PUBLIC]Kit Media PIX GEEKS [PUBLIC]
Kit Media PIX GEEKS [PUBLIC]PXNetwork
 
Catalogue Sensitive : Porcelaine d'Arita
Catalogue Sensitive : Porcelaine d'AritaCatalogue Sensitive : Porcelaine d'Arita
Catalogue Sensitive : Porcelaine d'AritaPXNetwork
 
Etude Get it Lab - Observatoire des attentes du Clic à la possession
Etude Get it Lab - Observatoire des attentes du Clic à la possessionEtude Get it Lab - Observatoire des attentes du Clic à la possession
Etude Get it Lab - Observatoire des attentes du Clic à la possessionPXNetwork
 
Etude sur la Pornographie et les Couples
Etude sur la Pornographie et les CouplesEtude sur la Pornographie et les Couples
Etude sur la Pornographie et les CouplesPXNetwork
 
Etude sur les Relation Marques/Blogueurs Tribway 2014
Etude sur les Relation Marques/Blogueurs Tribway 2014Etude sur les Relation Marques/Blogueurs Tribway 2014
Etude sur les Relation Marques/Blogueurs Tribway 2014PXNetwork
 
CHIFFRES CLÉS E-COMMERCE 2013
CHIFFRES CLÉS E-COMMERCE 2013CHIFFRES CLÉS E-COMMERCE 2013
CHIFFRES CLÉS E-COMMERCE 2013PXNetwork
 
Le porno, ses adeptes et leurs complexes
Le porno, ses adeptes et leurs complexesLe porno, ses adeptes et leurs complexes
Le porno, ses adeptes et leurs complexesPXNetwork
 
Etude sur le Not Provided / HTTPS - Janvier 2014
Etude sur le Not Provided / HTTPS - Janvier 2014Etude sur le Not Provided / HTTPS - Janvier 2014
Etude sur le Not Provided / HTTPS - Janvier 2014PXNetwork
 
Etude ifop Saint Valentin
Etude ifop Saint ValentinEtude ifop Saint Valentin
Etude ifop Saint ValentinPXNetwork
 
Barometre POE Havas Media 2014
Barometre POE Havas Media 2014Barometre POE Havas Media 2014
Barometre POE Havas Media 2014PXNetwork
 

Plus de PXNetwork (20)

Rapport du Congrès Américain sur les OVNIS
Rapport du Congrès Américain sur les OVNISRapport du Congrès Américain sur les OVNIS
Rapport du Congrès Américain sur les OVNIS
 
SMX Paris 2018 : Position zéro le Graal du SEO
SMX Paris 2018 : Position zéro le Graal du SEOSMX Paris 2018 : Position zéro le Graal du SEO
SMX Paris 2018 : Position zéro le Graal du SEO
 
Baromètre nPerf des connexions internet fixes T3 2017
Baromètre nPerf des connexions internet fixes T3 2017Baromètre nPerf des connexions internet fixes T3 2017
Baromètre nPerf des connexions internet fixes T3 2017
 
Baromètre nPerf des opérateurs mobiles au T3 2017
Baromètre nPerf des opérateurs mobiles au T3 2017Baromètre nPerf des opérateurs mobiles au T3 2017
Baromètre nPerf des opérateurs mobiles au T3 2017
 
Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...
Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...
Baromètre nPerf des connexions Internet fixes en France métropolitaine - Prem...
 
Kit média PIX GEEKS Cinéma / Séries TV
Kit média PIX GEEKS Cinéma / Séries TVKit média PIX GEEKS Cinéma / Séries TV
Kit média PIX GEEKS Cinéma / Séries TV
 
PIX GEEKS Kit Media Jeux Video
PIX GEEKS Kit Media Jeux VideoPIX GEEKS Kit Media Jeux Video
PIX GEEKS Kit Media Jeux Video
 
Kit media A la tienne.fr
Kit media A la tienne.frKit media A la tienne.fr
Kit media A la tienne.fr
 
Kit Media ZeMag
Kit Media ZeMagKit Media ZeMag
Kit Media ZeMag
 
[PUBLIC] Media Kit PIX GEEKS Audiences
[PUBLIC] Media Kit PIX GEEKS Audiences[PUBLIC] Media Kit PIX GEEKS Audiences
[PUBLIC] Media Kit PIX GEEKS Audiences
 
Kit Media PIX GEEKS [PUBLIC]
Kit Media PIX GEEKS [PUBLIC]Kit Media PIX GEEKS [PUBLIC]
Kit Media PIX GEEKS [PUBLIC]
 
Catalogue Sensitive : Porcelaine d'Arita
Catalogue Sensitive : Porcelaine d'AritaCatalogue Sensitive : Porcelaine d'Arita
Catalogue Sensitive : Porcelaine d'Arita
 
Etude Get it Lab - Observatoire des attentes du Clic à la possession
Etude Get it Lab - Observatoire des attentes du Clic à la possessionEtude Get it Lab - Observatoire des attentes du Clic à la possession
Etude Get it Lab - Observatoire des attentes du Clic à la possession
 
Etude sur la Pornographie et les Couples
Etude sur la Pornographie et les CouplesEtude sur la Pornographie et les Couples
Etude sur la Pornographie et les Couples
 
Etude sur les Relation Marques/Blogueurs Tribway 2014
Etude sur les Relation Marques/Blogueurs Tribway 2014Etude sur les Relation Marques/Blogueurs Tribway 2014
Etude sur les Relation Marques/Blogueurs Tribway 2014
 
CHIFFRES CLÉS E-COMMERCE 2013
CHIFFRES CLÉS E-COMMERCE 2013CHIFFRES CLÉS E-COMMERCE 2013
CHIFFRES CLÉS E-COMMERCE 2013
 
Le porno, ses adeptes et leurs complexes
Le porno, ses adeptes et leurs complexesLe porno, ses adeptes et leurs complexes
Le porno, ses adeptes et leurs complexes
 
Etude sur le Not Provided / HTTPS - Janvier 2014
Etude sur le Not Provided / HTTPS - Janvier 2014Etude sur le Not Provided / HTTPS - Janvier 2014
Etude sur le Not Provided / HTTPS - Janvier 2014
 
Etude ifop Saint Valentin
Etude ifop Saint ValentinEtude ifop Saint Valentin
Etude ifop Saint Valentin
 
Barometre POE Havas Media 2014
Barometre POE Havas Media 2014Barometre POE Havas Media 2014
Barometre POE Havas Media 2014
 

Enrichir vos contenus Wordpress avec les API - WPTech 2015

  • 1. 1Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Enrichir vos contenus Wordpress avec les API Fabien ELHARRAR Une présentation pour grosses feignasses et Black Hat SEO wanabee WPTech 2015
  • 2. 2Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Qui suis-je ? Fabien ELHARRRAR  Ingénieur en Mécanique + MBA en Marketing  10 ans de Consulting en Management (Peugeot, Orange, TF1, Lacoste, etc.)  Editeur web depuis 2012  Consultant free-lance en Monétisation web J’édite seul plus de 20 sites internet  500.000 pages vues par mois  Reach Facebook > 5 millions / semaine … Un bon ingénieur est un ingénieur feignant
  • 3. 3Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Dis papa c’est quoi une API ? Application Programming Interface Une API est une ensemble normalisé de classes, de méthodes ou de fonctions qui permettent d’interagir avec un service web. Les APIs permettent entre autres de récupérer des données structurées stockées chez un Tiers en mode lecture. Dans ce cas précis, cela revient plus ou moins à consulter une base données qui ne se trouve pas sur votre serveur. La plupart des APIs sont gratuites dans la limite d’un nombre de requêtes par jour et passent ensuite payantes. Par conséquent une grande majorité d’APIs nécessitent une authentification. A quoi ça peut bien me servir ? A enrichir vos contenus dynamiquement, ce qui plaira aux internautes et à Google :  Gain de temps (recherche et saisie)  Fraicheur des données
  • 4. 4Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Quelques exemples d’utilisation des API Drapeau Devise Langue Indicatif pays Météo Avis Google je-voyage.net pix-geeks.com Cover photo Année Network Description Planning épisodes Fiche personnage
  • 5. 5Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Où trouver les API dont vous avez besoin ? 2 annuaires d’API de référence Il existe des dizaines de milliers d’APIs sur internet. Elles ne sont pas toujours bien documentées, et sont parfois même officieuses (API Allociné) Les résultats sont généralement restitués aux formats JSON ou XML 2 directories de référence permettent de trouver presque tout :  5.000+ API publicapis.com  14.000+ API programmableweb.com Quelques API que j’utilise quotidiennement  Réseaux sociaux : Twitter, Facebook, Youtube, Sharedcount, Klout  Contenus : Betaseries, Comicvine, Marvel, TheMovieDB, OMDBapi, Discogs, Chartlyrics, Audioscrobbler, iTunes  Traduction : DetectLanguage, MicrosoftTranslator  Géolocalisation : OpenWeatherMap, Google Maps  Etc.
  • 6. 6Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 XML : un format structuré mais pas toujours pratique $xml_response = ' <movies> <movie> <title>WPTech Movie</title> <plot>Le monde merveilleux de Wordpress</plot> <rating type="stars">10</rating> <characters> <character> <name>Ms Coder</name> <actor>Angelina Jolie</actor> </character> <character> <name>Mr Coder</name> <actor>Daniel Roch</actor> </character> </characters> </movie> <movie>…</movie> </movies>'; $result = new SimpleXMLElement($xml_response); echo $result->movie[0]->title; echo "<ul>"; foreach ($result->movie->characters->character as $character){ echo "<li>". $character->name . " joué par " . $character->actor. "</li>"; } echo "</ul>"; XPATH EST TON AMI XPATH EST TON AMI
  • 7. 7Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 JSON : un format flexible de plus en plus répandu $json_response = '{ "movies": [{ "title": "WPTech Movie", "rating": "10", "plot": "Le monde merveilleux de Wordpress", "characters": [{ "name":"Ms Coder", "actor":"Angelina Jolie" },{ "name":"Mr Coder", "actor":"Daniel Roch" }] },{ … } ] }'; $result = json_decode($json_response, true); echo $result['movies'][0]['title']; echo "<ul>"; foreach ($result['movies'][0]['characters'] as $character){ echo "<li>". $character['name'] . " joué par " . $character['actor']. "</li>"; } echo "</ul>";
  • 8. 8Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Utilisez les API avec précaution Une forte consommation de ressources serveur Récupérer du contenu externe via file_get_contents ou curl peut rapidement faire tomber une petite configuration (serveur mutualisé) Un temps de réponse parfois long Certaines APIs mettent plusieurs secondes pour répondre à vos requêtes. Modifiez les paramètres de votre serveur Apache ou rajoutez une ligne dans votre php.ini max_execution_time = 30 Evitez les traitement groupés Il est tentant de peupler toute une base de données via un batch, mais :  La plupart des APIs ont des limites en nombre de requêtes par secondes  Sont payantes au-delà d’un certain nombre de requêtes par jour  Bloqueront votre compte / l’IP de votre serveur en cas d’usage abusif Appelez les APIs uniquement quand vous en avez besoin cad à l’affichage d’une page (init ou update de données via API)
  • 9. 9Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Les caches sont vos amis … il faut les aimer aussi Mettez les données récupérées via API en cache  Stockez systématiquement les données récupérées via API en base de donnée ou dans des fichiers plats.  Stockez systématiquement une date de mise à jour.  Lors de l’affichage d’un contenu mash-up ne requêtez l’API que si vos données sont périmées. Utilisez un plug-in de cache L'erreur est humaine mais un véritable désastre nécessite un ordinateur. Bill Gates Toute forme d’automatisation présente des risques. Une erreur dans le code et votre serveur se mettra à ramer s’il ne plante pas carrément… Utilisez systématiquement un plug-in de cache statique pour éviter les surcharges serveur liées aux passages de Bots ou aux pics de fréquentation.
  • 10. 10Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Où stocker les données récupérées via API ? Variables temporaires Transients Articles Custom fields Table d’options wp_options  Données à rafraichir de façon cyclique (compteurs)  Widgets  Données relativement statiques  Valeurs de tris  Champs administrables dans le backoffice set_transient($transient, $value, $expiration); get_transient($transient); update_post_meta ($post_id, $key, $value, $prev_value); get_post_meta($post_id,$key,$single); update_option ($option, $value, $autoload); get_option ($option, $default); Wordpress crée automatiquement 1 entrée dans wp_options pour déterminer la date à laquelle les 2 champs seront supprimés via CRON. _transient_name _transient_timeout_name Pensez à créer une 2ème entrée avec la date de mise à jour. Lors de l’affichage de cette valeur vous ferez une comparaison avec la date courante pour déterminer s’il est nécessaire de faire une maj via API. Créez une valeur backup qui sera réutilisée si l’API ne fonctionne pas
  • 11. 11Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Les API et Wordpress : quelques points à retenir Pour réduire la charge serveur liée aux API  Activez un plug-in de cache  Appelez vos fonctions depuis single.php et sidebar.php  Contrôlez de la date de dernière mise à jour  Appelez l’API uniquement à ce moment là si nécessaire  Stockez ces données localement Régulièrement l’API ne fonctionnera pas  Limite de requêtes dépassée  Downtown du service appelé  Timeout  API dépréciée Comparez systématiquement les données rapatriées  à celles stockées en base (custom fields, wp_options)  à un champs de « backup » dans wp_option
  • 12. 12Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Exemple : compte des partages sociaux d’un article function get_share_count($post_ID, $timeout = 1500){ $apikey = "1234567890AZERTYUIOP"; $url = get_permalink($post_ID); $count = get_transient('share_count_'.$post_ID); if (!$count) { $count = get_option('backup_share_count_'.$post_ID); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://free.sharedcount.com/?url=" . rawurlencode($url) . "&apikey=" . $apikey); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $shares = json_decode($output, true); if (!is_wp_error($shares) && !$shares['Error']) { $count_twitter = $shares['Twitter']; $count_facebook = $shares['Facebook']['total_count']; $count_google = $shares['GooglePlusOne']; $count_pinterest = $shares['Pinterest']; $count_linkedin = $shares['LinkedIn']; $total_count = $count_twitter + $count_facebook + $count_pinterest + $shares_linkedin + $shares_google; if ($total_count > $count) { $count = $total_count; update_option('backup_share_count_'.$post_ID, $count); update_post_meta($post_ID, 'shared_count',$count); } set_transient('share_count_'.$post_ID, intval($count), $timeout); } } return $count; }
  • 13. 13Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Et s’il n’existe pas d’API ? Il n’existe pas toujours d’API répondant à vos besoins. Si l’information cherchée est disponible sur une page web publique vous pouvez toujours la scrapper (la télécharger) pour en extraire des données. Récupérer le nombre de contacts Viadeo d’un compte function get_viadeo_count($viadeo_account, $timeout = 14000) { $contacts = get_transient('viadeo_contacts_'.$viadeo_account); if (!$contacts){ $string = file_get_contents("http://fr.viadeo.com/fr/profile/".$vurl); $string = eregi_replace('<p><span>','',$string); $string = eregi_replace('</span>contacts','',$string); if (preg_match('~gridUnit grid1of2 brd tac contact">(.*?)</~', $string, $match)!=0) { $contacts = $match[1]; } if ($contacts) { update_option( 'backup_viadeo_contacts_'.$viadeo_account, $contacts ); } else { $contacts = get_option('backup_viadeo_contacts_'.$viadeo_account); } set_transient('viadeo_contacts_'.$viadeo_account, intval($contacts), $timeout); } return $contacts; } Pour aller plus loin sur le scrapping :  XPath : langage permettant d’extraire des portions de documents XML  RDDZ Scrapper : un des meilleurs logiciels utilisant XPath OUI JE SUIS NUL EN REGEXP OUI JE SUIS NUL EN REGEXP
  • 14. 14Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Créer votre propre API pour faire communiquer vos sites Pour intégrer des contenus entre plusieurs sites, vous pouvez utiliser des iframes, faire des requêtes $wpdb sur un WP Multisite, etc. ou créer une petite API privée Créez une page en noindex avec un custom template : <?php /* Template Name: Mon API privée */ if (isset($_GET['parameter'])) { $parameter = $_GET['parameter']; $args = array(…); $my_query = new WP_Query($args); $response = array('data_1' => …, 'data_2' => …); echo json_encode($response); } ?> Exemple d’intégration entre 2 sites via API privée provient de http://monsite.com/api?parameter=toto
  • 15. 15Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015 Questions / Réponses Fabien ELHARRAR Consultant en Monétisation Web +33 6 66 20 36 98 fabien.elharrar@pxnetwork.fr Fabien ELHARRAR Consultant en Monétisation Web +33 6 66 20 36 98 fabien.elharrar@pxnetwork.fr .com Restons en contact On cherche des rédacteurs Wordpress