2013-02-07 27 views
9

我想通過僅與我的用戶名稱相關的標記搜索曲目,即皇家歌劇院。如何使用Sound Cloud API通過標記搜索特定用戶的曲目?

例如:

http://api.soundcloud.com/users/royaloperahouse/tracks/?client_id=238947HSGDHSDG&tags=eric 

告訴我,我需要使用Q參數。幽默是我搜索:

http://api.soundcloud.com/users/royaloperahouse/tracks/??client_id=238947HSGDHSDG&tags=eric&q=e 

,並從根本不是那些與只是我的用戶的整個聲音雲獲得聲音的列表。 同樣,如果我嘗試搜索跟蹤API(不是由用戶)並將查詢限制爲&user_id,我會獲得與所有用戶相關的視頻,而不是專用於皇家歌劇院的視頻。

最終目標是找到皇家歌劇院上傳的與特定藝術家有關的所有曲目。目前我們解決問題的方式是獲取我們上傳的所有曲目(目前有37個曲目),並重復這些曲目以匹配相關標籤的曲目。很明顯,隨着我們的音樂列表的增長,這將開始成爲一個問題。

謝謝。

+0

你有沒有[閱讀文檔](http://developers.soundcloud.com/docs/api/reference#users)? – MikeSmithDev

+5

是的,我有。謝謝。 – user954348

+0

恕我直言,看起來像搜索功能只是不像預期的那樣工作,因爲「過濾器」(q)一些如何勝過用戶搜索曲目。當通過user_id拉動時,同樣使用javascript SDK的結果也是如此。 – MikeSmithDev

回答

1

我以前沒有使用過這個API,但經過幾次測試後,我認爲我發現了你的問題。

您不應使用用戶作爲第一個網址片段,因爲您並未搜索用戶,而是在搜索按用戶名和標籤過濾的曲目。

而是使用軌道作爲第一URL段,並使用q參數來過濾的用戶名。那麼你也可以使用標籤參數。

測試此網址:http://api.soundcloud.com/tracks?q=username&tags=tag

SC.get('/tracks/', {q:'royaloperahouse', tags: 'insights' }, function(result) { 
    console.log(result[0].tag_list); 
}); 

說實話,我還是不明白q參數。在API文檔中,您可以在曲目,用戶等等以及搜索頁面中找到有關它的參考資料,但是我還沒有找到任何關於參數在每個查詢類型中過濾的文檔。在軌道上是用戶名(和可能的用戶ID)

如果你正在使用這個API,你應該問在他們的谷歌團隊soundcloud團隊更多的這個參數的含義。

+0

不幸的是,這是行不通的。它會返回不是他的曲目,正如其他人用'royaloperahouse'標記曲目一樣。它也不會返回所有的曲目。 – MikeSmithDev

+0

是的,這是行不通的。 – user954348

0

試試這個(你要檢查我的語法):

SC.get('/tracks/',array('user_id' => 'YOUR_ID', q:'royaloperahouse', tags: 'insights'), function(result) { 
    console.log(result[0].tag_list); 
}); 

SC.get('users/YOUR_ID/tracks/', {q:'royaloperahouse', tags: 'insights' }, function(result) { 
    console.log(result[0].tag_list); 
}); 
0

首先,瞭解用戶 「ID」 和用戶 「永久」 之間的區別。它們都是唯一的用戶標識符,但它們是具有不同用途的單獨事物。您可以使用前者,但不使用後者來訪問曲目。因此,而不是

http://.../users/royaloperahouse/... 

你應該使用

http://.../users/12127832/... 

爲適當的ID替換12127832,如果你正在尋找一個不同的藝術家。另外,你應該指定JSON作爲返回類型。最後,你可以調用服務器應該是這樣的:

http://api.soundcloud.com/users/12127832/tracks.json?client_id=238947HSGDHSDG&tags=eric 

另外:不Stack Overflow上發表您的客戶端ID!

相關問題