WEBCODELOG

free codes, enjoy

Tag: ‘lastfm’

Usando a API LastFm em Java

without comments

A LastFm é a queridinha das rádios online, mesmo com diversos concorrentes de alto nível como iLike, Pandora, Imeem, e outros tantos, aqui no Brasil a LastFm é um grande sucesso, seus milhões de usuários brasileiros ignoraram o bloqueio de alguns recursos e continuam fazendo scrobbling de seus áudios diáriamente.

Além de um database music, o LastFm é uma rede social e grande parte de suas informações são públicas e podem ser acessadas facilmente através de sua API.
Vamos dar inicio a um exemplo de como consumir os dados utilizando a library para Java lastfm-java. Antes de tudo, se você não tiver uma conta no LastFm, crie-a agora e depois obtenha a API Key. Neste mesmo link você encontrará a documentação da API, que detalha claramente a funcionalidade de cada método disponível e como é o seu acesso e se necessita ou não de autenticação.

Em nosso primeiro exemplo vamos fazer uma página web que irá listar as últimas faixas ouvidas e a lista de amigos de um usuário específico, com isto, você perceberá que nenhuma autenticação é necessária pois os dados são públicos.

Criei a classe LastFmClient, para facilitar os casts necessários e centralizar as chamadas da API.

public class LastFmClient {
// altere para a sua api key
 private static final String APIKEY = "XyZaBc001";
 private String uName = null;

/**
 *
 * @param uName
 */
 public LastFmClient(String uName){
 this.uName = uName;
 }

/**
 *
 * @return User/Friends List
 */
 public ArrayList<User> getFriends(){
 return (ArrayList<User>) User.getFriends(uName, APIKEY);
 }

 /**
 *
 * @return Tracks List
 */
 public ArrayList<Track> getTracks(){
 return (ArrayList<Track>) User.getRecentTracks(uName, APIKEY);
 }
}

Isto é o suficiente para você montar a lista como descrito acima, veja:

 String userName = request.getParameter("username");
 if( userName!=null && !userName.trim().equals("") ){
 // instancia a classe de backend
 LastFmClient client = new LastFmClient(userName);

 // seu código aqui
 }

Ouvidas recentemente.

<table border="0" cellpadding="2" cellspacing="1">
<% for(Track t : tracks){ %>
<tr>
 <td valign="top" align="left">
 <br/><strong><%=t.getAlbum() %></strong>
 <br/><em><%=t.getArtist() %></em>
 </td>
</tr>
<% }// for end tracks %>
</table>

Lista de amigos.

<table border="0" cellpadding="2" cellspacing="1">
<tr>
<%
 ArrayList<User> friends = client.getFriends();
 int count = 1;
 for(User f : friends){
%>
 <td valign="top" align="center">
 <% if( f.getImageURL()!=null ){ %><img src="<%= f.getImageURL() %>"><% } %>
 <br><strong><%=f.getName() %></strong>
 <br><a href="<%= f.getUrl() %>"><%= f.getUrl() %></a>
 <br/>
 </td>
<%
 if( count%5==0 ) out.print("</tr><tr>");
 count++;

 }// for end friends

}//
%>

Faça download do código completo.

Pronto, você conseguiu acessar dados do LastFm, usando o caminho correto e fácil, sem autenticação. Mas alguns dados são restritos e necessitam da autorização do usuário, informações básicas como a quantidade de músicas ouvidas, data de cadastro, nome, etc. são de acesso restrito.

Written by Luciano

fevereiro 1st, 2010 at 9:41 pm

Posted in Programação, Redes Sociais

Tagged with , ,