Como leer JSON con wp_remote_get en WordPress



Para aquellos que tenemos que trabajar con API de terceros, JSON es el formato estándar para estos procesos y WordPress nos provee de una API realmente útil la  HTTP API.

Para los que no sepais que es JSON  pues os dejo una definición pero traducido a dummies seria un formato en texto plano de esos del txt  muy sencillo formado por  clave // valor  con lo que la transferencia de datos es mucho menor, mas simple y muy rápida.

JSON es un formato de texto para la serialización de datos estructurados. Deriva de los Objetos Literales de Javascript y está definido en la tercera edición del estándar de Lenguaje de programación ECMAScript

Ejemplo de JSON

{ “id”: “1234” }

HTTP API tiene varias funciones super útiles que nos van a facilitar el trabajo, nosotros vamos a ver dos de ellas en este articulo.

  • wp_remote_get()   recupera el contenido de una url usando el método get
  • wp_remote_post()  recupera el contenido de una url usando el método post

En realidad veremos solo wp_remote_get() porque no vamos a traera nada por post.

Y ahora diréis para que vale esto.

Pues por ejemplo para conectarnos a otros sitios como: Redes sociales ( Facebook, Twitter, .. ) , para conectarnos a Mailchimp , para trabajar con bancos como Stripe ,  para cargar los productos de Woocommerce y mucho mas.

Un ejemplo sencillo lo tenéis en el siguiente plugin Simple Share Button  es un plugin para compartir en las redes sociales y muestra cuantas veces se ha compartido con facebook una entrada. Para eso se conectan a la api de facebook y le piden esa información.

Link al código de github alli teneis una funcion que llama a la api de facebook y os da la informacion.

https://github.com/davidsneal/simplesharebuttons/blob/master/inc/ssba_admin_panel.php

Si a la siguiente url :  http://graph.facebook.com/  le poneis una pagina web por ejemplo:

http://graph.facebook.com/https://www.danielcastanera.com vereis que os devuelve un json.

En mi caso nadie ni yo he compartido mi pagina en facebook pero si cogieramos la web de un periodico importante como abc , elpais, …

http://graph.facebook.com/http://www.abc.es

http://graph.facebook.com/http://www.elpais.com

 

Veréis que la cosa cambia y aparece el numero de veces compartida y los comentarios.

Esta información podríais procesarla y mostrarla mediante un shortcode, como vamos a ver en el siguiente ejemplo:

 

 

Y si ahora usamos el shortcode

 

El resultado seria:

[pintarRedes]