2013-02-07 48 views
9

Tôi muốn tìm kiếm các bản nhạc theo thẻ chỉ liên quan đến tên người dùng của tôi, tức là Nhà hát Opera Hoàng gia.Cách tìm kiếm các bản nhạc của người dùng cụ thể bằng thẻ bằng API âm thanh đám mây?

Ví dụ:

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

nói với tôi rằng tôi cần phải sử dụng một tham số q. Để khôi phục nó, tôi tìm kiếm:

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

và chỉ cần nhận danh sách âm thanh từ toàn bộ Sound Cloud chứ không phải chỉ liên quan đến người dùng của tôi. Tương tự như vậy nếu tôi thử và tìm kiếm API bản nhạc (không phải bởi người dùng) và giới hạn truy vấn với &user_id Tôi nhận được các video liên quan đến tất cả người dùng không phải là một cụ thể cho Nhà hát Hoàng gia.

Mục đích cuối cùng là tìm tất cả các bản nhạc mà Nhà hát Hoàng gia đã tải lên liên quan đến một nghệ sĩ cụ thể. Hiện tại cách chúng ta giải quyết nó là bằng cách tải tất cả các bản nhạc đã tải lên của chúng tôi (hiện tại là 37) và lặp qua các bản nhạc đó để khớp các bản nhạc theo thẻ có liên quan. Rõ ràng là danh sách âm nhạc của chúng tôi phát triển điều này sẽ bắt đầu là một vấn đề.

Cảm ơn.

+0

Bạn đã [đọc tài liệu] chưa (http://developers.soundcloud.com/docs/api/reference#users)? – MikeSmithDev

+5

Vâng tôi có. Cảm ơn. – user954348

+0

IMHO trông giống như chức năng tìm kiếm không hoạt động như mong đợi như "bộ lọc" (q) một số cách át chủ bài tìm kiếm bài hát của bạn theo người dùng. Cùng một kết quả bằng cách sử dụng javascript SDK quá khi kéo bởi user_id. – MikeSmithDev

Trả lời

1

Tôi chưa sử dụng API này trước đây, nhưng sau một vài thử nghiệm, tôi nghĩ rằng tôi đã tìm thấy sự cố của bạn.

Bạn không nên sử dụng người dùng làm phân đoạn url đầu tiên vì bạn không tìm kiếm người dùng, bạn đang tìm kiếm các tuyến đường được lọc theo tên người dùng và thẻ.

Thay vì sử dụng track như phân khúc url đầu tiên, và sử dụng q tham số để lọc tên người dùng. Sau đó, bạn cũng có thể sử dụng thông số thẻ.

Kiểm tra url này: http://api.soundcloud.com/tracks?q=username&tags=tag

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

Thành thật mà nói tôi vẫn không hiểu q tham số. Trong tài liệu API bạn tìm thấy tài liệu tham khảo về nó trong bài hát, người dùng, vv và trong trang tìm kiếm họ nói về nó quá nhưng tôi đã không tìm thấy bất kỳ tài liệu nào về tham số q là lọc trong mỗi loại truy vấn. Trong bản nhạc là tên người dùng (và id người dùng có thể)

Nếu bạn đang sử dụng API này, bạn nên yêu cầu nhóm soundcloud trong nhóm google của họ hiểu rõ hơn về tham số này.

+0

Thật không may điều này sẽ không hoạt động. Nó trả về bài hát không phải của anh, vì những người khác đã gắn thẻ bài hát với 'royaloperahouse'. Nó cũng sẽ không trả lại tất cả các bài hát của anh ấy. – MikeSmithDev

+0

Vâng, điều này sẽ không hoạt động. – user954348

0

Hãy thử điều này (bạn sẽ phải kiểm tra cú pháp của tôi):

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

hoặc

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

Thứ nhất, hiểu sự khác biệt giữa người sử dụng "id" và người dùng "permalink". Chúng là cả số nhận dạng người dùng duy nhất, nhưng chúng là những thứ riêng biệt với các mục đích khác nhau. Bạn có thể sử dụng trước đây, nhưng không phải sau này, để truy cập các bài hát.Vì vậy, thay vì

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

bạn nên sử dụng

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

thay 12.127.832 cho ID thích hợp nếu bạn đang tìm kiếm một nghệ sĩ khác nhau. Ngoài ra, bạn có thể nên chỉ định JSON làm kiểu trả về. Để kết thúc, cuộc gọi máy chủ của bạn sẽ trông giống như sau:

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

không đăng ID khách hàng của bạn trên Stack Overflow !!!

Các vấn đề liên quan