# はじめに
rustでtwitterのapiをさわるときにegg-modeを使いました。
pythonでtweepy使ってたので、その気分でやってて、大抵のことはできたのですが、
「認証されたユーザの情報を取ってくる方法」がわかりませんでした。
tweepyだとapiにme()で取れるので、egg-modeでも同じような機能あるだろうと思ってドキュメント漁ったのですがありませんでした。
tweepyのme()のコード見て、authでなにかしてるな感があったので、egg-modeでやってみたら、動いたので、コードをのせておきます。
Cargo.toml
[dependencies]
dotenv = "0.11"
egg-mode = "0.15"
tokio = { version = "0.2", features = ["full"] }
use dotenv::dotenv;
use std::env;
use egg_mode;
use tokio::prelude::*;
#[tokio::main]
async fn main() {
dotenv().ok();
let c_key = env::var("CONSUMER_KEY").expect("Please set consumer-key in .env");
let c_secret = env::var("CONSUMER_SECRET").expect("Please set consumer-secret in .env");
let a_key = env::var("ACCESS_KEY").expect("Please set access-key in .env");
let a_secret = env::var("ACCESS_SECRET").expect("Please set access-secret in .env");
let consumer_token = egg_mode::KeyPair::new(c_key, c_secret);
let access_token = egg_mode::KeyPair::new(a_key, a_secret);
let token = egg_mode::Token::Access {
consumer: consumer_token,
access: access_token,
};
let user = egg_mode::auth::verify_tokens(&token).await.unwrap();
println!("{}", user.screen_name);
}
.envファイルは各自用意してください。
おわりに
歴史のあるライブラリだとググれば大抵のことは分かるのですが、新しいライブラリだと情報が少ないのがつらいですね。