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::{helix::channels::GetChannelInformationRequest, TwitchClient};
use twitch_oauth2::{tokens::errors::AppAccessTokenError, AppAccessToken, Scope, TwitchToken};
let client: TwitchClient<reqwest::Client> = TwitchClient::default();
let token =
AppAccessToken::get_app_access_token(&client, client_id, client_secret, Scope::all())
.await?;
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 accessing channel information with a specified login name
let client = TwitchClient::default();
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 |
hmac | Enable message authentication using HMAC on EventSub |
time | Enable time utilities on Timestamp |
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 |
ureq | Enables ureq for HttpClient . |
surf | 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 | 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 |
unsupported | Enables undocumented or experimental endpoints, topics or features. Breakage may occur, semver compatibility not guaranteed. |
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;
twitch_oauth2
, orhelix
andclient
pub use client::Client as HttpClient;
client
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§
- Helix
Client helix
- Client for Helix or the New Twitch API
- TmiClient
client
andtmi
- Client for the twitch TMI endpoint, almost entirely undocumented and certainly not supported.
- Twitch
Client client
and (helix
ortmi
) - Client for Twitch APIs.
Enums§
- Deser
Error serde_json
- A deserialization error
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
Functions§
- parse_
json serde_json
- Parse a string as
T
, logging ignored fields and giving a more detailed error message on parse errors - parse_
json_ value serde_json
- Parse a json Value as
T
, logging ignored fields and giving a more detailed error message on parse errors