Android 上的 LastFM 请求

发布于 2024-11-09 16:06:10 字数 1373 浏览 0 评论 0原文

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

我想使用 LastFM API。

问题是当我想使用 LastFM 的方法时。

我注册了并且有一个 api 密钥。 如果我想使用Artist.getSimilar方法非常简单。 例如,如果我想使用此方法搜索与“Cher”类似的艺术家,则网址为:

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

通过参数传递艺术家和 api_key。

问题是我想使用 Artist.getTags 方法,

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

  • artist
  • api_key
  • api_sig
  • sk

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

我读了这个文档: http://www.lastfm.es/api/authentication

首先对所有的方法进行排序来构造你的 API 方法签名 按参数名称的字母顺序在调用中发送的参数 使用一种方案将它们连接成一个字符串。所以 对于对 auth.getMobileSession 的调用,您可能有:

api_keyxxxxxxxxauthTokenxxxxxxxxmethodauth.getMobileSession

确保您的参数采用 utf8 编码。现在将您的秘密附加到 这个字符串。最后,生成结果字符串的 md5 哈希值。 例如,对于秘密等于“mysecret”的帐户,您的 API 签名将是:

api签名= md5("api_keyxxxxxxxxauthTokenxxxxxxxxmethodauth.getMobileSessionmysecret") 其中 md5() 是 md5 哈希运算,其参数是字符串 进行哈希处理。哈希运算应返回 32 个字符 十六进制 md5 哈希值。

但我什么也不明白。首先我必须获取 api_sig,然后获取会话密钥,但我不知道如何做到这一点,哪些类使用以及任何东西......

有什么想法吗???谢谢!!!

I'm developing a music player on Android.

I would like to use LastFM API.

The problem is when I want to use a method of LastFM.

I sign up and I have an api-key.
If I want to use the method Artist.getSimilar is very easy.
For example, if I want to search similar artist to 'Cher' using this method, the url is:

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

Passing by argument artist and api_key.

The problem is that I want to use the method Artist.getTags

I have to pass forced 4 arguments:

  • artist
  • api_key
  • api_sig
  • sk

I have the 2 first arguments, but I can't obtain the api_sig and sk.

I read this document: http://www.lastfm.es/api/authentication

Construct your api method signatures by first ordering all the
parameters sent in your call alphabetically by parameter name and
concatenating them into one string using a scheme. So
for a call to auth.getMobileSession you may have:

api_keyxxxxxxxxauthTokenxxxxxxxmethodauth.getMobileSession

Ensure your parameters are utf8 encoded. Now append your secret to
this string. Finally, generate an md5 hash of the resulting string.
For example, for an account with a secret equal to 'mysecret', your
api signature will be:

api signature =
md5("api_keyxxxxxxxxauthTokenxxxxxxxmethodauth.getMobileSessionmysecret")
Where md5() is an md5 hashing operation and its argument is the string
to be hashed. The hashing operation should return a 32-character
hexadecimal md5 hash.

But I don't understand anything. First I have to obtain the api_sig, and after obtain the session key, but I haven't idea how do it, which classes use and anything...

Any idea??? Thanks!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

睫毛上残留的泪 2024-11-16 16:06:10

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

Why reinvent the wheel: there is a last.fm API at http://code.google.com/p/lastfm-java/, and you can see how they create the signature at http://code.google.com/p/lastfm-java/source/browse/trunk/src/de/umass/lastfm/Caller.java (look for the private Result call(String method, String apiKey, Map<String, String> params, Session session) method to see how they call the Authenticator.getSignature method at http://code.google.com/p/lastfm-java/source/browse/trunk/src/de/umass/lastfm/Authenticator.java).

許願樹丅啲祈禱 2024-11-16 16:06:10

试试这个API:
https://github.com/c99koder/lastfm-android/
我在这里找到了它。
可能有用

Try this API:
https://github.com/c99koder/lastfm-android/
I found it here.
It may be useful

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文