Inicio > PHP > Imeem.com [ PHP + Imeem API = Buscador de Mp3s ]

Imeem.com [ PHP + Imeem API = Buscador de Mp3s ]

Bueno aqui un codigo para hacer un buscador de mp3s usando la api de una red social donde se pueden almacenar distintos archivos multimedia, en este caso buscaremos mp3s alojados en imeem.com.

1).- Debemos registrarnos en esa web, es gratuito y solo tenemos que entrar AQUI y rellenar los datos.

2).- Ya registrados podremos entrar al programa DEVELOPERS donde solo debemos CREAR una aplicacion , llenar los campos con el nombre de la aplicacion, si es para paginas externas o para la red social ( elegimos externas ) y subir un icono.

3).- Al crearnos nuestra Aplicacion , nos entregara un codigo API KEY y Secret , Estos datos seran necesarios para poder correr la aplicacion ( Es parecido a la API de Facebook ).

4).- Con eso ya estamos listos para empezar a crear nuestro codigo. Imeem cuenta con una CONSOLA para testear las consultas de los metodos disponibles, para nuestro fin ocuparemos el metodo “mediaSearch” que recibe los parametros :

query La Busqueda que deceamos.
mediaType El tipo multimedia que puede ser music, video, o photo.
offset Es algo para la paginacion, por defecto es 0
numResults Numero de resultados que retorna, maximo 100.

Adiferencia de facebook, Imeem no cuenta con una Libreria PHP para la conexion con la web, por lo que nosotros tendremos que crear una. Para eso usaremos la Clase Sockets que postie hace unos dias atrás, esta servia para conectarse con paginas remotas usando PHP.

Debemos obtener la pagina:


http://www.imeem.com/api/xml/mediaSearch?&query=<query>&mediaType=<mediaType>&offset=<offset>&numResults=<numResults>&version=1.0&apiKey=<apikey>&sig=<sig>

Tenemos Casi todos los datos, solo nos falta el parametro sig “signature“, ese tenemos que conseguirlo de la siguiente manera:

Cada imeem API solicitud debe ser autenticada mediante el suministro de los siguientes parámetros:

sig = La firma se construye de acuerdo con el siguiente algoritmo: Todos los parámetros de la petición son el formato como una cadena en forma arg=val, ordenados alfabéticamente por el argumento, y concatenados. La cadena resultante es entonces el prefijo con el nombre de método y postfixed con el secreto. Por último un hash md5 se genera para la cadena. El hash md5 se convierte en la firma parámetro que se envía con la solicitud.

Al abrir la url con los datos requeridos nos respondera con un xml que contiene el codigo de la peticion mas todos los items de resultados a la busqueda. Un item contiene todos estos datos:

<type>El tipo de Multimedia</type>
<title>Titulo del Mp3</title>
<artist>Artista del Mp3s</artist>
<album/>
<description/>
<genre>El genero Musical</genre>
<duration>Duracion en segundos</duration>
<isSample>Bolean si es un sample</isSample>

<iconUrl>
Un Icono del Mp3s
</iconUrl>
<musicEmbedUrl>Una Url con el Flash+mp3 Listo para escuchar</musicEmbedUrl>
ETC …

Aqui podemos usar algun Xml Parse para extraer la informacion mas facilmente o hacerlo manualmente usando expresiones regulares.

Aqui les dejo el Codigo:

sk_write("GET ".$api_url." HTTP/1.1\r\nHost: www.imeem.com\r\nConnection: close\r\n\r\n");
//Pondremos una variable para solo capturar el cuerpo de la pagina y no las cabeceras
$Nocabeceras = false;
$contenido_web = '';
while (!feof($s-&gt;sk_fp()))
{
//leimos la respuesta del servidor a nuestra peticion
$contenido = $s-&gt;sk_get();
if ($Nocabeceras) { $contenido_web .= $contenido; }
if ($contenido == "\r\n") { $Nocabeceras = true; }
}
//imprimimos el contenido
echo $contenido_web;
$s-&gt;sk_close();
} else {
echo 'ERROR: No Pudo Conectar';
}
?&gt;

Aqui un ejemplo que hice con este mismo codigo pero ocupando simplexml

Ejemplo: Click aqui para ver el ejemplo.

Saludos, espero que les sirva.

pd: la clase SocketsClass.php la pueden sacar de AQUI

Categorías:PHP Etiquetas: , ,
  1. noviembre 18, 2008 a las 9:53 pm

    wena wena

  2. anna
    octubre 13, 2009 a las 12:56 pm

    Hola! Qué tal?

    Ya veo que esto lo publicaste hace un montón de tiempo pero a ver si me puedes ayudar…

    Estoy utilizando la API de imeem, concretamente el metodo mediaSearch. Todo me va ok si hago una query con un valor simple, es decir, con una sola palabra. Genero el sig y me devuelve una salida. No obstante, no doy con la manera de que si busco por ejemplo query=nombre de una canción, me genere un sig que sea correcto. Siempre me devuelve Invalid Signature. Sabes como debo concatenar las palabras para que genere el sig correcto? He probado con espacios y uniendo con “+” pero no funciona.

    Si me puedes echar un cable genial!

    Sino saludos igualmente!
    anna

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: