我正在使用Jquery将JSON数据发送到Grooveshark API以获取搜索结果,但这是我得到的结果 -
{"errors":[{"code":2,"message":"Method not found."}]}
这是触发groovehark API的一段代码。我无法弄清楚这个问题,任何帮助都会很棒。
$.ajax({
type: "POST",
url: 'http://api.grooveshark.com/ws3.php?sig=secret_code',
data: {
"method":"getSongSearchResults",
"header":{"wsKey":"secret_key"},"parameters":{"query":"megadeth hangar 18","country":"1","limit":"2","offset":""}
},
dataType: 'jsonp',
crossDomain: true,
async: false,
success: function () {
alert("success!");
}
});
答案 0 :(得分:0)
所以,我还没有到那里,但我想知道你是如何获得请求URL末尾的secret_code。
从https://github.com/fastest963/GroovesharkAPI-PHP/blob/master/gsAPI.php#L1044翻译看来,当您申请公共API密钥时,sig不是您的密码。
相反,它是你在ajax调用中发送到数据参数的dict的HMAC(md5)。我找到https://code.google.com/p/crypto-js/#HMAC并使用它来生成sig,将你发送的dict作为数据arg传入$ .ajax,并使用我的秘密从gs api签名。
我正在尝试调用启动会话,但我最终会使用
Object { readyState=0, status=0, statusText="error"}
信息较少,但我很确定这个网址不是你的秘密。