2010-04-14 3 views
2

저는 음악 참조 응용 프로그램을 작성 중이며 last.fm에서 가져온 각 앨범에 대해 ITMS에 연결하려고합니다 (앨범이 상점에있는 경우).iTunes Music Store Link Maker - 내 앱에서 검색하는 방법?

iTunes 링크 제조업체 웹 도구 http://apple.com/itunes/linkmaker/은 알려진 앨범의 링크를 가져 오는 데 적합하지만 프로그래밍 방식으로 내 앱에서 액세스해야합니다.

phobos.apple.com/WebObjects/MZSearch :

2003에서하지만했다이 NSLog blogpostreferenced more recently in another question here에 쿼리를 제출 제안, 내가 지금까지 건너 한 유일한 솔루션을 제공 할 것으로 보인다. woa/wa/advancedSearchResults?

"itms : //"앞에 넣으면 링크가 iTunes에서 작동하므로 "http : //"를 앞에두면 Camino에서 링크가 작동합니다 (Safari는 잘못된 XML 오류를 다시 발생시키는 경우가 있음). 다음과 같이 중요하다

태그는 다음과 같습니다 - 노래 제목

  • artistTerm - 아티스트 이름
  • albumTerm - 앨범 이름
  • composerTerm - 작곡가 이름
  • 용어

    • songTerm을 - 모든 필드
  • 제안 사항은 itms : //가 아닌 http : //를 사용하면 서버가 iTunes를 열지 않고 결과의 XML 문서를 반환하지만 iTunes로 직접 전송됩니다.

    결과 목록을 다시 볼 수 있습니까?

    답변

    5

    나는 LinkMaker를 사용하여 내가 연주하는 노래에 관한 iTunes 세부 정보를 얻습니다. 그 때문에 LinkMaker는 json 데이터와 한 번에 1 개의 결과를 반환 할 수 있다는 것을 알았습니다.exemple 들어

    > country : store country term : could 
    > contains artist name, song name, album 
    > media : music 
    

    , 당신이 원하는 경우 : 당신이 줄 필요가

    http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/itmsSearch?lang=1&output=json&country=%@&term=%@&media=%@&limit=1 "

    여기

    되는 매개 변수 :

    나는 내 쿼리를 perfom이 URL을 사용하고 있습니다 여기에 "U2"에 의해 "One"이라는 노래에 대한 세부 정보가 있습니다. 올바른 URL은

    입니다.

    http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/itmsSearch?lang=1&output=json&country=US&term=U2%20one&media=music&limit=1

    그럼 당신은 다음과 같이 JSON 데이터를 받게됩니다

    { 
    "resultCount":1, 
    "results": [ 
    {"wrapperType":"track", "mediaType":"song", "artistName":"U2", "itemParentName":"Achtung Baby", "itemParentCensoredName":"Achtung Baby", "itemCensoredName":"One", "itemName":"One", "artistLinkUrl":"http://itunes.apple.com/us/artist/u2/id78500?uo=4", "artworkUrl60":"http://a1.phobos.apple.com/us/r1000/009/Features/32/9a/60/dj.mfynlttx.60x60-50.jpg", "artworkUrl100":"http://a1.phobos.apple.com/us/r1000/009/Features/32/9a/60/dj.mfynlttx.100x100-75.jpg", "country":"USA", "currency":"USD", "discCount":1, "discNumber":1, "itemExplicitness":"notExplicit", "itemLinkUrl":"http://itunes.apple.com/us/album/one/id368713?i=368617&uo=4", "itemPrice":"1.29000", "itemParentExplicitness":"notExplicit", "itemParentLinkUrl":"http://itunes.apple.com/us/album/one/id368713?i=368617&uo=4", "itemParentPrice":"9.99000", "previewUrl":"http://a1.phobos.apple.com/us/r1000/019/Music/b6/8c/c5/mzm.epegonxg.aac.p.m4a", "primaryGenreName":"Rock", "trackCount":12, "trackNumber":3, "trackTime":276042}] 
    } 
    

    당신은 이러한 JSON 데이터를 디코딩하기 위해 다음이 필요합니다.

    NSDictionary *jsonResultsParsed = [jsonResults JSONValue]; 
    

    그리고 마지막으로 당신이 원하는 것을 얻을 :

    :

    NSDictionary *songDetailsDict = [[jsonResultsParsed objectForKey:@"results"] objectAtIndex:0]; 
    

    당신이 로케일을 사용하여 국가를 결정해야합니다 사용자의 국가를 결정하려는 경우, 여기에 내가 사용하고있는 코드는

    - (NSString *)getUserCountry 
    { 
        NSLocale *locale = [NSLocale currentLocale]; 
        return [locale objectForKey: NSLocaleCountryCode]; 
    } 
    

    희망이 도움이됩니다.

    티에리

    편집 : 마지막으로 문서를 사용할 수 있습니다 :이 사용 예를 들어

    http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

    +0

    감사합니다. 호기심에서 앱에 항상 미국 스토어를 사용하고 있습니까, 아니면 사용자에 따라 전환합니까? – prendio2

    +0

    업데이트 된 답변을 참조하십시오. – thierryb

    0

    iTunes Store Web Service Search API (pdf)에 대한이 문서는 구식이지만 불완전하지만이를 수행하는 방법으로 보입니다.

    제휴 프로그램의 다른 모든 부분과 마찬가지로 설정하는 것은 힘든 경험입니다.

    관련 문제