Создание списка воспроизведения для пользователя Apple Musi c - PullRequest
0 голосов
/ 17 января 2020

Я создал приложение в React Native, которое позволяет пользователю искать песни с использованием API Apple Musi c. Пока все хорошо.

Для следующего шага. Я хочу использовать песни, которые искали пользователи, и позволить им сохранять их в качестве списка воспроизведения в своей учетной записи Apple Musi c (при условии, что они являются подписчиками, et c.).

Однако, кажется, что не хватает документации и примеров того, как это сделать (по крайней мере, по сравнению со Spotify - я воссоздаю приложение Spotify, которое я сделал в прошлом).

Мне нужно получить авторизацию от пользователя, а затем использовать эту конечную точку: https://developer.apple.com/documentation/applemusicapi/create_a_new_library_playlist, но я не могу узнать, как именно это сделать. Другие части документации API, по-видимому, просто заявляют: «При наличии надлежащей авторизации от пользователя вы также можете создавать или изменять списки воспроизведения и применять оценки к контенту пользователя». но никогда не объясняйте и не дайте ссылку на то, как получить это разрешение.

Может ли кто-нибудь указать мне правильное направление? И дайте мне знать, если то, что я пытаюсь сделать, действительно возможно с Apple Musi c - кажется, что это так, но то, как я хожу по кругу, я уже не так уверен. Спасибо

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Я не знаю, поможет ли это или нет (я iOS dev, а не React dev), но вот призыв сохранить список воспроизведения в пользовательской библиотеке Musi c в Swift. Может быть, это поможет вам указать правильное направление (?)

Если вы не хотите, чтобы код Swift загрязнял ваш поток, дайте мне знать, и я его удалю.

import StoreKit
// ...


// request user token
if let devToken = UserDefaults.standard.string(forKey: "devToken") {

    SKCloudServiceController().requestUserToken(forDeveloperToken: devToken, completionHandler: { userToken, _ in

        guard let _ = userToken else { return }    
        self.addPlaylist()
    })
}


// add playlist
func addPlaylist() {

    MPMediaLibrary.default().addItem(withProductID: "pl.u-065LACYzL34", completionHandler: { _, error in

        guard error == nil else {
            print("add playlist sad")
            return
        }
        // success
    })
}
0 голосов
/ 28 февраля 2020

Я уже давно пытаюсь сделать это.

MusicKit JS работает в браузере, но поскольку в iOS нет браузера, это не ... go: Window.musicKit.getInstance() нет. И я еще не нашел какой-либо другой способ авторизации MusicKit, используя JavaScript, кроме MusicKit JS.

Вы можете получить доступ к Apple musi c Каталог через API только с токеном разработчика. Вы даже можете получить доступ (только для чтения) к плейлисту пользователя, если он опубликован c и вы знаете глобальный идентификатор, но это не то, что нам нужно. Нам нужен доступ к пользовательской библиотеке , чтобы мы могли что-то делать (кроме удаления, потому что вы не можете удалять вещи через Apple Musi c API).

Чтобы разрешить доступ к библиотеке пользователя в iOS, вам необходимо использовать StoreKit для этого , а для того, чтобы сделать это с React Native, вам необходимо использовать собственные модули для this .

Проблема с этим вторым битом заключается в том, что я понятия не имею, как это сделать. Я прочитал несколько вещей, но пока не соединяю точки.

Если бы вы (или кто-либо другой) это выяснили, выкинуть записку с практическими рекомендациями было бы здорово. Если я это выясню, я вернусь сюда и напишу.

Обновление: Я нашел эту статью , которая близка к тому, чтобы объяснить ее действительно хорошо.

Проблемы, с которыми я здесь сталкиваюсь, заключаются в том, что в разделе Добавление React Native iOS Project есть незаконченное предложение («Здесь мы создаем ...»), и я не могу найти React.xcodeproj, когда я выполняю шаги, предоставленные автором.

...