Crate twitch_api2[−][src]
Expand description
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
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 |
trace_unknown_fields | Logs ignored fields as WARN log messages where applicable. 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. |
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
Different clients you can use with this crate to call endpoints.
eventsub
Holds serializable EventSub stuff
helix
Helix endpoints or the New Twitch API
pubsub
Holds serializable pubsub stuff
tmi
TMI Endpoint, twitch’s unsupported api for better chatters retrieval
Twitch types
Structs
client
and helix
Client for Helix or the New Twitch API
Doc test for README
client
and tmi
Client for the twitch TMI endpoint, almost entirely undocumented and certainly not supported.
client
and (helix
or tmi
)Client for Twitch APIs.
Enums
A deserialization error
Statics
helix
Location of Twitch Helix
pubsub
Location to twitch PubSub
Location of Twitch TMI
Functions
Parse a string as T
, logging ignored fields and giving a more detailed error message on parse errors
Parse a json Value as T
, logging ignored fields and giving a more detailed error message on parse errors