Android上的LastFM请求

时间:2011-05-23 15:58:16

标签: android xml api key last.fm

我正在Android上开发音乐播放器。

我想使用LastFM API。

问题在于我想使用LastFM的方法。

我注册了,我有一个api-key。 如果我想使用Artist.getSimilar方法很容易。 例如,如果我想使用此方法搜索类似的艺术家“雪儿”,则网址为:

http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026

通过参数artist和api_key传递。

问题是我想使用Artist.getTags

方法

我必须传递强制4个参数:

  • 艺术家
  • API_KEY
  • api_sig
  • SK

我有2个第一个参数,但是我无法获得api_sig和sk。

我阅读了这份文件:http://www.lastfm.es/api/authentication

  

首先订购所有的api方法签名   通过参数名称按字母顺序在您的呼叫中发送的参数   使用方案将它们连接成一个字符串。所以   要调用auth.getMobileSession,您可以:

     

api_keyxxxxxxxxauthTokenxxxxxxxmethodauth.getMobileSession

     

确保您的参数是utf8编码的。现在追加你的秘密   这个字符串。最后,生成结果字符串的md5哈希值。   例如,对于一个秘密等于'mysecret'的帐户,您的   api签名将是:

     

api signature =   MD5( “api_keyxxxxxxxxauthTokenxxxxxxxmethodauth.getMobileSessionmysecret”)   其中md5()是md5哈希操作,其参数是字符串   要哈希。散列操作应返回32个字符   十六进制md5哈希。

但我什么都不懂。首先我必须获取api_sig,并在获取会话密钥后,但我不知道它是如何做的,哪些类使用和任何东西......

任何想法???感谢!!!

2 个答案:

答案 0 :(得分:3)

为什么重新发明轮子:http://code.google.com/p/lastfm-java/上有一个last.fm API,您可以看到他们如何在http://code.google.com/p/lastfm-java/source/browse/trunk/src/de/umass/lastfm/Caller.java创建签名(查找private Result call(String method, String apiKey, Map<String, String> params, Session session)方法以了解如何他们在http://code.google.com/p/lastfm-java/source/browse/trunk/src/de/umass/lastfm/Authenticator.java)调用Authenticator.getSignature方法。

答案 1 :(得分:1)

试试这个API: https://github.com/c99koder/lastfm-android/ 我发现它here。 它可能有用