RustでTwitter APIを使ってツイートする

はじめに

最近、RustでTwitter連携して使うWebアプリケーションを開発しており、RustでTwitter APIを使う機会があったので、ここに使い方を記しておきます。

環境

  • Windows 10 Pro
  • Rust 1.42.0

準備

Cargoを使って、Rustのプロジェクトディレクトリを生成します。

cargo new hello-twitter

次に、Cargo.tomlにTwitter APIを利用するためのパッケージを記述します。

[dependencies]
tokio = "0.2"
egg-mode = "0.14"

egg-modeはTwitter APIをRustで扱いやすくするために開発されたライブラリです。

egg-mode-rs/egg-mode
a twitter api crate for rust. Contribute to egg-mode-rs/egg-mode development by creating an account on GitHub.

ツイートする

以下のコードをmain.rsに記述します。

キーは自分のものに置き換えてください。

const CONSUMER_KEY: &str = "XXXXXXXXXXXXXXXXXXXXXXXXX";
const CONSUMER_SECRET: &str = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
const ACCESS_KEY: &str = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
const ACCESS_SECRET: &str = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

#[tokio::main]
async fn main() {
    let consumer_token = egg_mode::KeyPair::new(CONSUMER_KEY, CONSUMER_SECRET);
    let access_token = egg_mode::KeyPair::new(ACCESS_KEY, ACCESS_SECRET);
    let token = egg_mode::Token::Access {
        consumer: consumer_token,
        access: access_token,
    };

    let tweet_result = egg_mode::tweet::DraftTweet::new("Hello Twitter from Rust!")
        .send(&token)
        .await;

    match tweet_result {
        Ok(tweet) => println!("以下のツイートに成功しました。\n{}", tweet.text),
        Err(e) => println!("{}", e),
    }
}

以下のコマンドで実行します。

cargo run

ツイートに成功すると、以下のメッセージが表示されます。

以下のツイートに成功しました。
Hello Twitter from Rust!

おわりに

Rustでも簡単にTwitter APIを扱うことができました。

コメント

タイトルとURLをコピーしました