#twitter #oauth #api-bindings

twapi

一个简单的Twitter库。易于定制。

13个不稳定版本

0.7.0 2021年3月26日
0.6.0 2020年2月1日
0.5.2 2019年10月10日
0.5.0 2019年6月27日
0.4.0 2018年3月23日

#19 in #twitter

MIT/Apache

29KB
736

twapi-rs

一个简单的Twitter库。易于定制。

文档

描述

twapi-rs是一个简单的Twitter库。易于定制。

特性

  • 应用仅认证
  • 用户认证
  • 支持JSON(dm_event,welcome_message,media_metadata)
  • Oauth1.0认证
  • 媒体上传
  • 账户活动API
  • OAuth Web应用程序示例
  • 账户活动Web应用程序示例
  • 异步/Await(如果您想进行同步执行,请使用twapi-ureq。)
  • 任何可执行的Twitter API(可能...)

示例

use twapi::Twapi;

#[tokio::main]
async fn main() {
    // Application Only Authentication Sample
    let consumer_key = "xxx";
    let consumer_secret = "xxx";
    let applicaiton_auth = twapi::ApplicationAuth::new(
        &twapi::oauth2::get_bearer_token(consumer_key, consumer_secret).await.unwrap()
    );
    let res = applicaiton_auth.get_search_tweets(
        &vec![("q", "新宿"), ("count", "2")]
    ).await.unwrap();
    println!("{:?}", res);

    // Custmize Sample. Any API Executable!
    let res: serde_json::Value = applicaiton_auth.get(
        "https://api.twitter.com/1.1/statuses/user_timeline.json",
        &vec![("screen_name", "aoyagikouhei"), ("count", "2")]
    ).await.unwrap().json().await.unwrap();
    println!("{:?}", res);

    // JSON Sample
    let user_auth = twapi::UserAuth::new(
        "xxx",
        "xxx",
        "xxx",
        "xxx"
    );
    let data = r#"{
        "event": {
            "type": "message_create",
            "message_create": {
                "target": {
                    "recipient_id": "19522946"
                },
                "message_data": {
                    "text": "予定表〜①ハンカクだ!"
                }
            }
        }
    }"#;
    let v : serde_json::Value = serde_json::from_str(data).unwrap();
    let res = user_auth.post_direct_messages_events_new(&v).await;
    println!("{:?}", res);

    // Media Upload
    let res = user_auth.post_media_upload_chunk("test.mp4", "video/mp4", "tweet_video", None).await;
    println!("{:?}", res);
}

依赖

~10–25MB
~378K SLoC