1 个稳定版本
1.0.0 | 2022年5月22日 |
---|
#7 in #user-profile
24KB
450 代码行
InstAPI
提供对 Instagram Basic Display API 的抽象,以检索令牌和收集用户的个人资料信息和媒体。
示例用法
use instapi::{auth, user};
let secrets = auth::Secrets {
app_id: /* Instagram app ID */,
app_secret: /* Instagram app secret */,
oauth_uri: /* OAuth redirect URI */,
};
// Forward the user to the authorization page and interactively request a code.
let code = auth::request_code(&secrets)?;
// Exchange the authorization code for a short-lived token.
let token = auth::ShortLivedToken::new(&secrets, code.as_str())?;
// Link the token with profile.
let profile = user::Profile::new(token);
// Retrieve the user profile information and print username.
println!("Username: {}", profile.info()?.username());
模块描述
-
auth
模块实现了授权相关的内容:秘密和令牌。用于存储 Instagram 应用程序私有信息的Secrets
结构。令牌有两种类型:短期 和 长期。第一种在获取后仅可用 1 小时,不能刷新。长期令牌通过交换短期令牌生成,获取后可用 60 天(或私人账户的 90 天)。 -
user
模块提供检索用户个人资料信息和媒体的方法,包括专辑内容。每个个人资料都与一个令牌相关联。
Instafetcher
一个示例实用程序,为该库提供命令行界面。
要构建此工具,您需要设置环境变量 INSTAGRAM_APP_ID
、INSTAGRAM_APP_SECRET
和 INSTAGRAM_OAUTH_URI
的相应值。要执行授权,使用 --log-in
选项,它将在系统配置目录中存储长期令牌。之后,您可以使用以下主要选项
--info
。检索并显示基本个人资料信息。--media
。将所有媒体文件下载到指定的目录。文件名格式如下:<owner's username>_<media ID>_<publish date>
。对于每个专辑将创建一个子目录。要排除专辑,请使用--no-albums
选项。
依赖项
~5–21MB
~273K SLoC