Crate twitch_api2[−][src]
Rust library for talking with the new Twitch API aka. "Helix", TMI and more! Use Twitch endpoints fearlessly!
Examples
Get information about a channel with the Get Channel Information
helix endpoint.
use twitch_api2::{TwitchClient, helix::channels::GetChannelInformationRequest}; use twitch_oauth2::client::surf_http_client; use twitch_oauth2::{AppAccessToken, Scope, TwitchToken, tokens::errors::TokenError}; let token = match AppAccessToken::get_app_access_token(surf_http_client, client_id, client_secret, Scope::all()).await { Ok(t) => t, Err(TokenError::Request(e)) => panic!("got error: {:?}", e), Err(e) => panic!(e), }; let client = TwitchClient::new(); let req = GetChannelInformationRequest::builder() .broadcaster_id("27620241") .build(); println!("{:?}", &client.helix.req_get(req, &token).await?.data.unwrap().title);
There is also a convenience function for accesssing channel information with a specified login name
let client = TwitchClient::new(); println!("{:?}", &client.helix.get_channel_from_login("twitch".to_string(), &token).await?.unwrap().title);
Features
This crate provides almost no functionality by default, only exposing types
. To enable more features, refer to below table.
Feature | |
---|---|
twitch_oauth2 | Gives scopes for endpoints and topics that are needed to call them. |
client | Gives a client abstraction for endpoints. See for example TmiClient and HelixClient |
helix | Enables Helix endpoints |
tmi | Enables TMI endpoints |
eventsub | Enables deserializable structs for EventSub |
pubsub | Enables deserializable structs for PubSub |
surf_client | Enables surf for HttpClient . Note that this does not enable any default client backend, if you get a compile error, specify surf in your Cargo.toml . By default, surf uses feature curl-client |
reqwest_client | Enables reqwest for HttpClient . Note that this does not enable any default TLS backend, if you get invalid URL, scheme is not http , specify reqwest in your Cargo.toml. By default, reqwest uses feature default-tls |
hmac | Enable message authentication using HMAC on EventSub |
all | Enables all above features. Including reqwest and surf. Do not use this in production, it’s better if you specify exactly what you need |
unsupported | Enables undocumented or experimental endpoints or topics. Breakage may occur |
deny_unknown_fields | Adds #[serde(deny_unknown_fields)] on all applicable structs/enums. Please consider using this and filing an issue or PR when a new field has been added to the endpoint but not added to this library. |
Re-exports
pub use twitch_oauth2; | |
pub use client::Client as HttpClient; |
Modules
client | client Different clients you can use with this crate to call endpoints. |
eventsub | eventsub Holds serializable EventSub stuff |
helix | helix Helix endpoints or the New Twitch API |
pubsub | pubsub Holds serializable pubsub stuff |
tmi | tmi TMI Endpoint, twitch’s unsupported api for better chatters retrieval |
types | Twitch types |
Structs
HelixClient | client and helix Client for Helix or the New Twitch API |
TmiClient | client and tmi Client for the twitch TMI endpoint, almost entirely undocumented and certainly not supported. |
TwitchClient | client and (helix or tmi )Client for Twitch APIs. |
Statics
TWITCH_HELIX_URL | helix Location of Twitch Helix |
TWITCH_PUBSUB_URL | pubsub Location to twitch PubSub |
TWITCH_TMI_URL | tmi Location of Twitch TMI |