Ayer hablábamos de APIs, sabiendo ya que son y que hacen, entonces vamos a comenzar con algunos experimentos, el API de Twitter (y los mas utilizados) manejan un protocolo de conexión segura llamado oAuth, este se basa en Tokens y claves de accesso encriptadas de forma segura para que asegurarse que la data se accede con los permisos adecuados y por una persona o aplicación concreta..... Para mas info ver: oAuth Wikipedia.
Bueno, vamos a lo que nos interesa, lo primero es tener la conexión mediante oAuth, para ello podemos descargarmos los archivos desde GitHub (solo nos hace falta la carpeta twitteroauth).
Una vez hecho esto vamos a la zona de desarrollo de twitter y creamos un App, basta con rellenar todos los campos requeridos y tener nuestra aplicación en marcha, una vez hecho esto nos resta darle los permisos adecuados, para ello vamos a nuestra App y en la pestaña de configuración nos dirigimos al tipo de aplicación para darle permisos de lectura y escritura.
Ahora nos dirigimos a la pestaña oAuth Tool y, si no tenemos valores en los tokens, generamos los valores. Estos son los que necesitamos para comenzar a desarrollar nuestra aplicación e interactuar con el API. Una vez tengamos todo preparado vamos con el código, para este ejemplo crearemos un archivo llamado datos_oAuth.php.
Como podemos ver en el colocamos todas las variables, es más fácil hacerlo así ya que si necesitamos acceder muchas veces al API para realizar distintas consultas, solo incluimos la configuración a nuestro archivo.
Ahora vamos con nuestro archivo principal:
Ya solo nos resta cambiar la URL por lo que queramos obtener, podemos consultar la documentación para ver los métodos que tenemos a nuestra disposición, para el ejemplo obtendremos los últimos tweets, así que el código vendría quedando de la siguiente manera:
Esto nos devuelve una estructura en formato JSON, el cual podemos procesar mediante el mismo PHP, para ello utilizamos la función inversa para convertir la data en arreglo php y procesarla, de forma que nuestro código para el ejemplo quedaría así:
Si todo ha salido bien, entonces tendremos un resultado como el siguiente:
Aunque para optimizar nuestro código (y por ser buena práctica) podemos utilizar otros lenguajes del lado del cliente para procesar el JSON como JavaScript...
NOTA: la función "json_decode" nos crea un array a partir del JSON, por lo que podemos acceder a cualquier dato obtenido siguiendo el orden lógico, por ejemplo, para obtener el nombre: "$arrJson[0]['user']['screen_name']"... Para ver el array podemos agregar esto al código y así ver de forma ordenada en que posición están los campos que queremos mostrar:
Bueno, vamos a lo que nos interesa, lo primero es tener la conexión mediante oAuth, para ello podemos descargarmos los archivos desde GitHub (solo nos hace falta la carpeta twitteroauth).
Una vez hecho esto vamos a la zona de desarrollo de twitter y creamos un App, basta con rellenar todos los campos requeridos y tener nuestra aplicación en marcha, una vez hecho esto nos resta darle los permisos adecuados, para ello vamos a nuestra App y en la pestaña de configuración nos dirigimos al tipo de aplicación para darle permisos de lectura y escritura.
My App > Settings / Application Type / Read and Write
Ahora nos dirigimos a la pestaña oAuth Tool y, si no tenemos valores en los tokens, generamos los valores. Estos son los que necesitamos para comenzar a desarrollar nuestra aplicación e interactuar con el API. Una vez tengamos todo preparado vamos con el código, para este ejemplo crearemos un archivo llamado datos_oAuth.php.
require_once('twitteroauth/autoload.php'); use Abraham\TwitterOAuth\TwitterOAuth; $consumerKey = 'MI_CONSUMER_KEY'; $consumerSecret = 'MI_CONSUMER_KEY_SECRET'; $oAuthToken = 'MI_CONSUMER_TOKEN'; $oAuthSecret = 'MI_CONSUMER_TOKEN_SECRET'; $conexion = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret);
Como podemos ver en el colocamos todas las variables, es más fácil hacerlo así ya que si necesitamos acceder muchas veces al API para realizar distintas consultas, solo incluimos la configuración a nuestro archivo.
Ahora vamos con nuestro archivo principal:
require_once('datos_oAuth.php'); $tweets = $conexion->get("https://api.twitter.com/1.1/LO_QUE_HAREMOS_EN_URL");
Ya solo nos resta cambiar la URL por lo que queramos obtener, podemos consultar la documentación para ver los métodos que tenemos a nuestra disposición, para el ejemplo obtendremos los últimos tweets, así que el código vendría quedando de la siguiente manera:
require_once('datos_oAuth.php'); $tweets = $conexion->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=carlitoxenlaweb&count=5"); // Creamos el JSON $json = json_encode($tweets); echo $json;
Esto nos devuelve una estructura en formato JSON, el cual podemos procesar mediante el mismo PHP, para ello utilizamos la función inversa para convertir la data en arreglo php y procesarla, de forma que nuestro código para el ejemplo quedaría así:
require_once('datos_oAuth.php'); $tweets = $conexion->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=carlitoxenlaweb&count=5"); // Creamos el JSON $json = json_encode($tweets); echo $json; echo "<br/><br/><hr/>Ahora mas entendible...<hr/><br/>"; // Procesamos el JSON $arrJson = json_decode($json, true); echo '<div>'; foreach ($arrJson as $key=>$valor) { echo '<p>' . $valor->text . '</p>'; } echo '</pre>';
Si todo ha salido bien, entonces tendremos un resultado como el siguiente:
Aunque para optimizar nuestro código (y por ser buena práctica) podemos utilizar otros lenguajes del lado del cliente para procesar el JSON como JavaScript...
NOTA: la función "json_decode" nos crea un array a partir del JSON, por lo que podemos acceder a cualquier dato obtenido siguiendo el orden lógico, por ejemplo, para obtener el nombre: "$arrJson[0]['user']['screen_name']"... Para ver el array podemos agregar esto al código y así ver de forma ordenada en que posición están los campos que queremos mostrar:
echo ""; print_r($arrJson); echo "";
Recibe notificaciones por correo