2012-09-10 59 views
0

我已經從github克隆了JavaScript SDK,而Firefox15.0以外的版本不滿意,我能夠獲得我想要的任何內容。 (跟蹤列表,組列表)。無法使用javascript通過soundcloud API添加曲目到一個組

我希望能夠將我的一首曲目添加到我的一個組中(到目前爲止,我只有其中一個,以保持測試的簡單性。)console讓我添加(PUT https://api.soundcloud.com/groups/92779/contributions/58889291)並刪除來自組的相同曲目(具有相同URI的DELETE),但我沒有使用JavaScript SDK jQuery示例。 (我開始認爲它是jquery.sc.api.js,但我不知道我在尋求幫助。)

這就是我迄今爲止一起入侵的情況:(好我做了很多,但我已經把它砍下來突出這只是一個例子。)

的index.html

<!DOCTYPE html> 
<html> 
    <head><meta charset="utf-8" /> 
<title>SC.js.test</title> 
<script> var FireFox15_error = 'Error: ReferenceError: id is not defined \ 
Source File: jquery.tmpl.js Line: 126' 
</script> 
<style type="text/css">.hidden { visibility: hidden; }</style> 
</head> 
    <body> 
    <div id="container"> 
    </div> 
    <div id="tracks" class="hidden"> 
    <h2>Your tracks</h2> 
     <ul id="track-list"> 
     </ul> 
     The Add button seems 'to work' if the track is already in the group, but just redirects to the login page if it isn't (is this a sign that the token isn't being sent with the PUT ?) 
    </div> 
<!-- am I'm just old wanting to move these into the <head> ? --> 
<script type="text/javascript" charset="utf-8" src="jquery_1.7.1_min.js"></script> 
<script type="text/javascript" charset="utf-8" src="jquery.tmpl.js"></script> 
<script type="text/javascript" charset="utf-8" src="jquery.sc.api.js"></script> 
<script type="text/javascript" charset="utf-8" src="main.js"></script> 
    <!-- Templates --> 
    <script id="track" type="text/html"> 
     <li data-track-id="${id}" id="${id}">${$i}) <a href="${permalink_url}">${title}</a>(${id})</li> 
    </script> 
<div id="debug" class="hidden"> 
    <h3>Requests/Questions</h3> 
<ol> 
<li>api.put('/me', { "description": 'Guess who is using the new API function?' }); //please add this</li> 
<li> why does sc have a different string than the track_id for removing tracks from a group? </li> 
</ol> 
</div> 
</body></html> 

main.js

(function($) { 
    var soundCloudApiKey = 'should_be_able_to_create_a_key_for_(locked_to)_each_user'; 
    var user_id = ''; 
    var api = $.sc.api(soundCloudApiKey, { 
    onAuthSuccess: function(user, container) { 
     user_id = user.id; 
     $('<span class="username">Logged in as: <strong>' + user.username + '</strong> (' + user_id + ')</a>').prependTo(container); 
    } 
    }); 
    $(document).bind($.sc.api.events.AuthSuccess, function(event) { 
    $(this).click(function(data) { 
    data.preventDefault(); 
    var Sender = window.event.srcElement; 
    if(Sender.id == 'add_track_submit'){ 
     var group_id = $('#group_id').val(); 
     var track_id = $('#track_id').val(); 
     alert('TRYING to add track ' + track_id + ' to group ' + group_id); 
     //api.put('/groups/' + group_id + '/contributions/' + track_id); // http://developers.soundcloud.com/docs/api/guide#contributing-group 
     api.put('/groups/' + group_id + '/contributions/' + track_id, function(reply, e){ //trying to get some feedback on why this does not work 
        // It seems to be using a GET rather than a PUT or POST 
     //api.post('/groups/' + group_id + '/contributions/' + track_id, function(reply, e){ //also does not seem to work 
      if(e){ console.log('err:' + e); } 
      console.log('track add reply' + reply); 
      alert('track ' + track_id + ' added to group ' + group_id); 
     }); 
    } 
    return false; 
    }); 
    api.get('/me/tracks', function(data) { 
     // you can use new jQuery templating for generating the track list 
     $('#track').render(data).appendTo("#track-list"); 
     //groovy, if Firefox15.0 did not hate it, (works in Google Chrome 18.0.1025.162/JavaScript V8 3.8.9.18) 
     $.map(data, function(track, i){ 
      my_group_id = 92779; //dirty hack while I try to get this working with just one track and one group 
      var add_button = '<span id="add_button"><form id="add_track"><input id="group_id" type="hidden" name="group_id" value="' + my_group_id + '" /> \ 
<input type="hidden" id="track_id" name="track_id" value="' + track.id + '" /> \ 
<input type="submit" id="add_track_submit" name="add" value="Add ' + track.title + ' to group ' + my_group_id + '" /></form></span>'; 
           $('#track-list>#' + track.id).append(add_button); 
    }); 
    $('div').removeAttr("class", "hidden"); 
    }); 
}); 
})(jQuery); 
+0

在嘗試回答此問題時發現此問題(http://stackoverflow.com/questions/11713034/)ed問題。 –

回答

相關問題