16个版本
0.7.1 | 2021年11月10日 |
---|---|
0.7.0 | 2021年1月6日 |
0.6.3 | 2020年12月29日 |
0.6.1 | 2020年10月19日 |
0.1.1 | 2019年12月31日 |
#35 in #环境变量
81 每月下载量
225KB
5K SLoC
弃用通知
本软件包已被弃用,推荐使用 rspotify。最初,在 rspotify 不支持异步且 API 性能远不如现在的情况下,创建了此软件包。但自那时以来,它已经得到了很大的改进,我没有时间和精力再维护这个软件包了。
原始README
异步Rust Spotify客户端。
描述
Aspotify 是 Spotify API 的 Rust 封装。它提供了 Spotify 的所有 对象模型 和所有端点的函数。
授权
所有 Spotify 端点都需要授权。此库提供了两种授权形式;客户端凭证和授权码。要使用任何一种,您首先需要一个 Spotify 开发者 账户,它是免费的。然后,您可以使用客户端凭证和客户端密钥使用端点,或者使用 oauth2 和授权码代表用户执行操作。
示例
use aspotify::{Client, ClientCredentials};
// This from_env function tries to read the CLIENT_ID and CLIENT_SECRET environment variables.
// You can use the dotenv crate to read it from a file.
let credentials = ClientCredentials::from_env()
.expect("CLIENT_ID and CLIENT_SECRET not found.");
// Create a Spotify client.
let client = Client::new(credentials);
// Gets the album "Favourite Worst Nightmare" from Spotify, with no specified market.
let album = client.albums().get_album("1XkGORuUX2QGOEIL4EbJKm", None).await.unwrap();
功能
在最新版本发布时,aspotify
支持 Spotify API 的所有功能。它内部使用 reqwest
,因此必须使用 Tokio 运行时。
测试
为了测试,您首先需要在您的 Spotify 白名单 URL 中添加 http://non.existant/
。获取您的客户端 ID 和客户端密钥,并将它们放在软件包根目录下的 .env
文件中,如下所示
CLIENT_ID=some value
CLIENT_SECRET=some value
然后,运行 cargo run --example refresh_file
。按照显示的说明操作。如果一切顺利,您应该在软件包根目录中看到一个名为 .refresh_token
的文件。此文件包含用于运行所有测试的刷新令牌。有关此过程的更多信息,请参阅 examples/refresh_file.rs
。
这些测试将对您的账户进行临时更改,但它们都将被撤销。您还需要一个不受限制的非私有 Spotify 客户端打开,以便所有测试都能成功运行,并且您队列中不能有任何歌曲。
计划
- 添加阻塞API。
- 支持其他HTTP客户端。
- 当限制超过Spotify对返回
Page
/CursorPage
函数的限制时,自动发送多个请求。
依赖项
~7–22MB
~306K SLoC