6 个稳定版本
1.1.3 | 2023 年 11 月 28 日 |
---|---|
1.1.1 | 2023 年 10 月 21 日 |
1.1.0 | 2023 年 10 月 18 日 |
1.0.7 | 2023 年 10 月 18 日 |
#620 in 身份验证
每月 97 次下载
用于 codr
54KB
794 行
onedrive
与 OneDrive 交互的包。
用法
为了使用此包,您需要提供自己的 Microsoft OAuth2 凭据(请参阅此处的官方说明),以便正常工作。
如何获取 Microsoft OAuth2 凭据
以下步骤概述了如何获取这些凭据。
- 使用以下重定向 URI 注册
Web
应用程序:Redirect URI
为https://127.0.0.1:<REDIRECT_PORT><REDIRECT_ENDPOINT>
- <REDIRECT_PORT> 默认为
8080
- <REDIRECT_ENDPOINT> 默认为
/redirect
- <REDIRECT_PORT> 默认为
- 支持的账户类型:任何组织目录中的账户和个人 Microsoft 账户
- 在左侧菜单中选择
概览
。将应用程序 (客户端) ID
复制为 MSGRAPH_CLIENT_ID。 - 在左侧菜单中选择
证书 & 机密
并添加一个新的客户端机密。将机密值复制为 MSGRAPH_CLIENT_SECRET。 - 在左侧菜单中选择
API 权限
并添加一个权限,然后选择Microsoft Graph
和委派权限
。现在添加Files.Read
权限(以及必要的其他权限)。
示例用法
添加
cargo add onedrive
获取 MSGraph 令牌
use onedrive::{GraphTokenObtainer, TokenObtainer};
use std::env;
use std::time::SystemTime;
fn setup_logger(log_level: log::LevelFilter) -> Result<(), fern::InitError> {
fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
"[{} {} {} {}:{}] {}",
humantime::format_rfc3339_seconds(SystemTime::now()),
record.level(),
record.target(),
record.file().unwrap_or("unknown"),
record.line().unwrap_or(0),
message
))
})
.level(log_level)
.chain(std::io::stdout())
.chain(fern::log_file("output.log")?)
.apply()?;
Ok(())
}
fn main() {
setup_logger(log::LevelFilter::Info).unwrap();
let token_obtainer = GraphTokenObtainer {
client_id: env::var("MSGRAPH_CLIENT_ID")
.expect("Missing the MSGRAPH_CLIENT_ID environment variable."),
client_secret: env::var("MSGRAPH_CLIENT_SECRET")
.expect("Missing the MSGRAPH_CLIENT_SECRET environment variable."),
access_scopes: vec![
"https://graph.microsoft.com/Files.Read".to_string(),
"https://graph.microsoft.com/User.Read".to_string(),
"https://graph.microsoft.com/Files.Read.All".to_string(),
],
auto_open_auth_url: true,
redirect_endpoint: Some("/redirect".to_string()),
redirect_port: Some(8080),
};
// This token can then be used to start interacting with MSGraph
println!(
"Token={:?}",
token_obtainer.get_token().unwrap().access_token()
)
}
与 OneDrive 交互
请检查codr
中的源代码,以了解如何使用此包与 OneDrive 交互。
哪些使用了此包?
此包的开发是为了帮助codr
与 OneDrive 交互。
注意
[!警告] 这是我第一个Rust项目,使用时请谨慎...
依赖项
~12–31MB
~479K SLoC