10 个版本

使用旧的 Rust 2015

0.1.3 2016年4月17日
0.1.2 2015年6月28日
0.1.1 2015年5月17日
0.0.6 2015年2月4日
0.0.4 2015年1月24日

#70 in #api-access

每月 33 次下载

MIT/Apache

38KB
842

rust-pocket

Pocket API 封装(http://getpocket.com),工作正在进行中

API 非常简单。最复杂的代码是授权部分。您需要 consumer_keyaccess_token 才能使用 API。

您可以通过在 我的应用 页面创建应用程序来获取 consumer_key。通过 OAuth 认证流程 来获取 access_token

在此实现中,OAuth 工作流程通过一对方法来实现

extern crate pocket;

use pocket::Pocket;

fn authenticate() {
  let mut pocket = Pocket::new("YOUR-CONSUMER-KEY-HERE", None);
  let url = pocket.get_auth_url().unwrap();
  println!("Follow the link to authorize the app: {}", url);
  // Here we should wait until user follows the URL and confirm app access
  
  let username = pocket.authorize().unwrap;
}

所以您 1) 使用 pocket.get_auth_url() 生成 OAuth 访问请求 URL,2) 让用户跟随 URL 并确认应用程序访问,3) 调用 pocket.authorize() 并得到错误或刚刚授权的用户名。

我建议在获取访问令牌后将访问令牌保存起来,这样您就不必在下一次重复此工作流程。您可以使用 pocket.access_token() 方法获取访问令牌。将其存储在某个地方,并使用它来构建 Pocket 对象

let access_token = "YOUR-STORED-ACCESS-TOKEN";
let mut pocket = Pocket::new("YOUR-CONSUMER-KEY-HERE", Some(access_token));

现在您有两种方法(目前)来获取和添加新的 URL 到您的口袋。

要添加项目,请使用 Pocket::add()Pocket::push() 方法

// Quick add by URL only
let added_item = pocket.push("http://example.com").unwrap();

// Add with all meta-info provided (title, tags, tweet id)
let added_item = pocket.push("http://example.com", Some("Example title"), Some("example-tag"), Some("example_tweet_id")).unwrap();

要查询您的口袋,请使用 Pocket::filter() 方法

let items = {
    let mut f = pocket.filter();
    
    f.complete() // complete data
    f.archived() // archived items only
    f.videos()   // videos only
    f.offset(10) // items 10-20
    f.count(10)
    f.sort_by_title() // sorted by title
    f.get(); // get items
};

// There are other methods, see `PocketGetRequest` struct for details
...

API 封装将通过新的方法和参数进行改进。请继续关注!

许可证

许可协议为以下之一

由您选择。

贡献

除非您明确声明,否则您根据Apache-2.0许可证定义的,有意提交以包含在该作品中的任何贡献,应按照上述方式双重许可,不附加任何额外条款或条件。

依赖项

~5.5MB
~124K SLoC