Package selection guidance compiled from public package information, community data, and project usage.
A pure Dart package that provides a wrapper for connecting to Twitch.tv's API using OAuth implicit authentication. It simplifies integration with Twitch's services, enabling developers to authenticate users and access public data such as streams, channels, and user information. The package supports multiple platforms including Android, iOS, Web, macOS, Windows, and Linux, making it ideal for cross-platform applications. Designed for ease of use, it handles the complexities of OAuth flows while maintaining security and compatibility with Twitch's current authentication standards.
Use cases
Integrating Twitch login functionality
Fetching live stream data
Accessing user and channel information
Building Twitch-based social apps
Creating dashboards for streamers
Key features
OAuth implicit authentication
Cross-platform support
Pure Dart implementation
Simple API interface
Secure token handling
Suitable for
Flutter apps needing Twitch integration
Stream monitoring tools
Twitch community platforms
Developer tools for Twitch content
Multi-platform applications
Considerations
Requires proper Twitch app registration
Limited to OAuth implicit flow
Dependent on Twitch API rate limits
Needs careful handling of refresh tokens
Not suitable for server-side operations
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
twitch_api
A wrapper in pure Dart to connect to Twitch.tv using OAuth implicit authentication.
NOTE: This package is in its early stage, please be patient until more methods are implemented or do not hesitate to open a merge request if you added support for an endpoint. Currently I do not have a roadmap of the endpoint I am going to add in priority so do not hesitate to open an issue to make suggestions depending of your needs.
To use this package you will need to register an application on the Twitch developer console to get a client ID.
After registering your application you will need to instantiate the TwitchClient class from the package with your clientId and your redirectUri .
import'package:twitch_api/twitch_api.dart';
final _twitchClient = TwitchClient(
clientId: clientId,
redirectUri: redirectUri,
);
Now that you have initialized the client the last step before using the method will be to manage the first connection with your twitch account and initialize the token you will receive. You can find a complete example of an implementation using the package flutter_webview_plugin.
const clientId = "<YOUR_CLIENT_ID>";
const redirectUri = "<YOUR_REDIRECT_URL>"; // ex: "http://localhost/"final _twitchClient = TwitchClient(
clientId: clientId,
redirectUri: redirectUri,
);
final _flutterWebviewPlugin = FlutterWebviewPlugin();
// First authentication through a webviewFuture<TwitchToken> _openConnectionPage({
List<TwitchApiScope> scopes = const [],
}) {
// Listen for url changes to detect redirection on our redirectUri.
_flutterWebviewPlugin.onUrlChanged.listen((url) {
if (url.startsWith(_twitchClient.redirectUri)) {
// After you got to your redirectUri you can initialize the token.
_twitchClient.initializeToken(TwitchToken.fromUrl(url));
// Close the webview
_flutterWebviewPlugin.close();
}
});
// When the webview is closed pop the current route.
_flutterWebviewPlugin.onDestroy.listen((_) => Navigator.pop(context));
// Get authorization URL for the connection with the webview.final _url = _twitchClient.authorizeUri(scopes);
returnNavigator.push(
context,
MaterialPageRoute(
builder: (context) => WebViewPage(_url.toString()),
),
).then((_) => _twitchClient.twitchHttpClient.validateToken());
}
Now you are ready to use the methods implemented in Supported Endpoints section.
Supported Endpoints
Ads
[x] Start Commercial
Analytics
[x] Get Extension Analytics
[x] Get Game Analytics (Documentation in progress)