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 #环境变量

Download history 31/week @ 2024-03-10 12/week @ 2024-03-17 6/week @ 2024-03-24 37/week @ 2024-03-31 12/week @ 2024-04-07 1/week @ 2024-04-14 14/week @ 2024-04-21 10/week @ 2024-04-28 3/week @ 2024-05-05 8/week @ 2024-05-12 6/week @ 2024-05-19 22/week @ 2024-06-02 13/week @ 2024-06-09 37/week @ 2024-06-16 9/week @ 2024-06-23

81 每月下载量

MIT/Apache

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