#instagram #api #user-profile #authentication #api-bindings #cli

instapi

Instagram Basic Display API 的包装库,用于收集元数据和媒体文件

1 个稳定版本

1.0.0 2022年5月22日

#7 in #user-profile

MIT 许可证

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_IDINSTAGRAM_APP_SECRETINSTAGRAM_OAUTH_URI 的相应值。要执行授权,使用 --log-in 选项,它将在系统配置目录中存储长期令牌。之后,您可以使用以下主要选项

  • --info。检索并显示基本个人资料信息。
  • --media。将所有媒体文件下载到指定的目录。文件名格式如下: <owner's username>_<media ID>_<publish date>。对于每个专辑将创建一个子目录。要排除专辑,请使用 --no-albums 选项。

依赖项

~5–21MB
~273K SLoC