Consumir WebServices JSon desde PHP
by P-los on Nov.14, 2009, under Funciones, Técnicas, Web
Hoy gracias a que estuve apoyando a un proyecto de unos amigos, les traigo un simple ejemplo de como consumir WebServices hechos con JSon desde PHP.
Para este ejemplo utilizaremos una búsqueda en Twitter, ya que cumple con estas características.
Primero tenemos que formar una dirección URL con la ubicación de nuestro WebService, que para nuestro caso sería:
$URL="http://search.twitter.com/search.json?q=" . $Busqueda;
donde $Busqueda es el término que vamos a buscar.
Primero vamos a abrir esta dirección como un archivo cualquiera y guardamos su contenido en una variable:
$archivo = fopen ($URL, "r");
$texto = fgets($archivo);
Ahora, aprovechamos una función de PHP 5.2.0 o superior, llamada json_decode() que nos regresa un objeto con el contenido del JSon, cuyas propiedades son los valores entregados por el WebService, y podremos mostrar su contenido:
$json = json_decode($texto);
echo "max_id=".$json->max_id;
echo "next_page=".$json->next_page;
Para este caso particular, Twitter nos entrega un arreglo con los resultados, que facilmente podemos meter en un foreach:
foreach($json->results as $valor)
{
echo "<img src='".$valor->profile_image_url."' style='width:60px;height:60px;' /><br />";
echo "<h1>".$valor->from_user."</h1><br />";
echo $valor->text."<br />";
}
y así de facil tenemos un cliente que muestra los resultados de busqueda en twitter desde PHP.
- No related posts
November 24th, 2009 on 11:56 am
Puedes leer archivos más fácilmente con file_get_contents()
Por otra parte, también es fácil crear APIs (de lectura) con PHP y JSON.
January 3rd, 2010 on 12:40 pm
Hola, buen artículo.
A mi me come la cabeza este problema, pero hacerlo con javascript. Por ejemplo, ayudándome con JQuery, busco recibir el XML o JSON de alguna página (como twitter por ejemplo) y falla quien sabe porqué.
Ya me he visto tentado a leer el file con php y hacer lo que quiera desde ahí, pero honestamente lo veo mucho más limpio si se logra solo con js. Incluso, para mi sorpresa, si lo leo con php y me lo envío a mi mismo ¡ahora sí funciona!. Creo que me estoy desayunando con algo ¿acaso no es posible usar un WebService de alguien que no sea yo mismo?, me parece un chasco grande :/