iTunes Music Store Link Maker - как искать в моем приложении?

Я пишу приложение-справочник по музыке, и для каждого альбома (взятого с last.fm) хотел бы добавить ссылку на ITMS (если альбом есть в магазине).

Веб-инструмент создания ссылок iTunes http://apple.com/itunes/linkmaker/ отлично подходит для получения ссылки на известный альбом, но мне нужно получить к нему программный доступ из моего приложения.

Этот блог NSLog, датируемый 2003 годом, но был упомянутый недавно в другом вопросе здесь, кажется, предлагает единственное решение Я до сих пор сталкивался, предлагая отправить запрос:

phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?

Поместите перед ним itms: //, и ссылка будет работать в iTunes, поместите перед ним http: //, и ссылка будет работать в Camino (Safari иногда возвращает неверную ошибку XML).

Важные теги:

  • songTerm - название песни
  • artistTerm - имя исполнителя
  • albumTerm - название альбома
  • composerTerm - имя композитора
  • срок - все поля

Предполагается, что при использовании http: // вместо itms: // сервер будет возвращать XML-документ с результатами вместо открытия iTunes, но в любом случае меня отправят прямо в iTunes.

Можно ли вернуть список результатов?


person prendio2    schedule 14.04.2010    source источник


Ответы (2)


Я использую LinkMaker, чтобы получить в iTunes сведения о песне, которую я проигрываю. Для этого я обнаружил, что LinkMaker может возвращать данные json, а также 1 результат за раз.

Я использую этот URL для выполнения своего запроса:

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

Вот параметры, которые вам нужно указать:

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

Например, если вы хотите получить подробную информацию о песне "One" от "U2", вот правильный 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

person thierryb    schedule 19.04.2010
comment
Спасибо за этот пример использования. Из любопытства, вы всегда используете магазин в США в своем приложении или переключаетесь в зависимости от пользователя? - person prendio2; 20.04.2010

Этот документ для API поиска веб-служб iTunes Store (pdf), хотя старый и неполный, кажется, способ добиться этого.

Однако настраивать это - болезненный опыт, как и любую другую часть партнерской программы.

person prendio2    schedule 14.04.2010