1Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Enrichir vos contenus Wordpress avec les API
Fabien ELHAR...
2Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Qui suis-je ?
Fabien ELHARRRAR
 Ingénieur en Mécanique +...
3Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Dis papa c’est quoi une API ?
Application Programming Int...
4Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Quelques exemples d’utilisation des API
Drapeau
Devise
La...
5Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Où trouver les API dont vous avez besoin ?
2 annuaires d’...
6Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
XML : un format structuré mais pas toujours pratique
$xml...
7Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
JSON : un format flexible de plus en plus répandu
$json_r...
8Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Utilisez les API avec précaution
Une forte consommation d...
9Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Les caches sont vos amis … il faut les aimer aussi
Mettez...
10Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Où stocker les données récupérées via API ?
Variables te...
11Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Les API et Wordpress : quelques points à retenir
Pour ré...
12Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Exemple : compte des partages sociaux d’un article
funct...
13Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Et s’il n’existe pas d’API ?
Il n’existe pas toujours d’...
14Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Créer votre propre API pour faire communiquer vos sites
...
15Enrichir Wordpress avec les API - Fabien Elharrar - WPTech 2015
Questions / Réponses
Fabien ELHARRAR
Consultant en Monét...
Prochain SlideShare
Chargement dans…5
×

Enrichir vos contenus Wordpress avec les API - WPTech 2015

3 633 vues

Publié le

Source : http://pxagency.fr/wordpress-api/

Les API permettent d'enrichir facilement des contenus afin de créer des mashup qui plairont à la fois aux internaute et à Google.

Vous trouverez dans cette présentation :
- une explication de ce qu'est une API
- une liste de ressources gratuites
- des exemples pratique pour utiliser une API avec Wordpress
- et des conseils pour que l'implémentation ne génère pas de problèmes techniques

Publié dans : Internet
  • Soyez le premier à commenter

Enrichir vos contenus Wordpress avec les API - WPTech 2015

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

×