Soft 是一个用于 Swift 的 Spotify Web API 库。它与 Swift Package Manager 一起使用,并支持 Linux,因此它可以在桌面和服务器端应用程序中运行。
这是基于 rspotify 的实现。
这仍然是一个正在进行中的工作,并且仅支持有限数量的调用。请参阅 SpotifyClient.swift 以查看支持的调用以及接下来要实现的一些 TODO。非常感谢任何帮助。
Soft 现在支持 Linux 了! 未来,一旦 keyEncodingStrategy
和 keyDecodingStrategy
得到支持,我们将删除所有不必要的 CodingKey
声明。 请参阅此处的错误报告 here。
将其添加到您的 Package.swift
.package(url: "https://github.com/oliveroneill/Soft.git", .upToNextMajor(from: "0.0.6")),
请参阅 SpotifyClient.swift 以了解当前可用的调用。 该类中有很多 TODO,用于说明需要实现的调用,我将不胜感激您的帮助来完成实现。
所有方法都需要用户授权,这意味着您需要生成一个授权令牌,表明用户已授予您的应用程序执行给定任务的权限。
您将需要指定一个重定向 URL,此 URL 不需要指向任何地方,仅用于检索 Spotify 添加的查询参数。
import Foundation
import Soft
do {
let oauth = try SpotifyOAuth(clientID: "CLIENT_ID", clientSecret: "CLIENT_SECRET", redirectURI: URL(string: "https://:8888/callback")!, state: "STATE", scope: "playlist-read-private")
// Dispatch group is used so that program does not exit until the result
// is received
let dispatchGroup = DispatchGroup()
dispatchGroup.enter()
getToken(oauth: oauth) { result in
switch result {
case .success(let token):
let client = SpotifyClient(tokenInfo: token)
client.track(trackID: "11dFghVXANMlKmJXsNCbNl") {
print($0)
dispatchGroup.leave()
}
case .failure(let error):
print("error: \(error)")
dispatchGroup.leave()
}
}
dispatchGroup.notify(queue: DispatchQueue.main) {
exit(EXIT_SUCCESS)
}
dispatchMain()
} catch {
print(error)
}
在 macOS 上使用 Docker 时,使用此命令在 Linux 上运行测试
docker run --rm -v "$(pwd):/pkg" -w "/pkg" swift:latest /bin/bash -c "swift test --build-path ./.build/linux"