twitch_api

Dart Pub Coverage Status style: lint

一个纯 Dart 的包装器,用于通过 OAuth 隐式认证连接到 Twitch.tv。

所有端点均根据 Twitch API 参考 的定义实现。

入门

注意:此包仍处于早期阶段,请耐心等待更多方法的实现,或如果您添加了对某个端点的支持,请随时提出合并请求。目前我没有要优先添加的端点路线图,因此请随时 打开一个问题 以根据您的需求提出建议。

要使用此包,您需要在 Twitch 开发者控制台 上注册一个应用程序以获取 **客户端 ID**。

注册您的应用程序后,您需要使用您 `clientId` 和 `redirectUri` 来实例化包中的 `TwitchClient` 类。

import 'package:twitch_api/twitch_api.dart';

final _twitchClient = TwitchClient(
  clientId: clientId,
  redirectUri: redirectUri,
);

现在您已经初始化了客户端,在使用方法之前最后一步是管理与您的 twitch 帐户的首次连接并初始化您将收到的令牌。您可以在 flutter_webview_plugin 中找到使用该包的完整实现示例。

const clientId = "<YOUR_CLIENT_ID>";
const redirectUri = "<YOUR_REDIRECT_URL>"; // ex: "https:///"

final _twitchClient = TwitchClient(
  clientId: clientId,
  redirectUri: redirectUri,
);

final _flutterWebviewPlugin = FlutterWebviewPlugin();

// First authentication through a webview
Future<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);

  return Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => WebViewPage(_url.toString()),
    ),
  ).then((_) => _twitchClient.twitchHttpClient.validateToken());
}

现在您已准备好使用 支持的端点 部分中实现的方法。

支持的端点

广告

  • 开始商业广告

分析

  • 获取扩展分析
  • 获取游戏分析(文档正在编写中)

Bits

  • 获取 Bits 排行榜
  • 获取 Cheermotes
  • 获取扩展交易

频道

  • 获取频道信息
  • 修改频道信息
  • 获取频道编辑

频道积分

  • 创建自定义奖励
  • 删除自定义奖励
  • 获取自定义奖励
  • 获取自定义奖励兑换
  • 更新自定义奖励
  • 更新兑换状态

聊天

  • 获取频道表情
  • 获取全局表情
  • 获取表情集
  • 获取频道聊天徽章
  • 获取全局聊天徽章
  • 获取聊天设置
  • 更新聊天设置

剪辑

  • 创建剪辑
  • 获取剪辑

权益

  • 创建权益授予上传 URL
  • 获取代码状态
  • 获取掉落权益
  • 兑换代码

扩展

  • 获取扩展配置段
  • 设置扩展配置段
  • 设置扩展所需配置
  • 发送扩展 PubSub 消息
  • 获取直播频道
  • 获取扩展密钥
  • 创建扩展密钥
  • 发送扩展聊天消息
  • 获取扩展
  • 获取已发布的扩展
  • 获取扩展 Bits 产品
  • 更新扩展 Bits 产品

EventSub

  • 创建 EventSub 订阅
  • 删除 EventSub 订阅
  • 获取 EventSub 订阅

游戏

  • 获取热门游戏
  • 获取游戏

Hype Train

  • 获取 Hype Train 事件

管理

  • 检查 AutoMod 状态
  • 获取被禁事件
  • 获取被禁用户
  • 获取主持人
  • 获取主持人事件

民意调查

  • 获取投票
  • 创建投票
  • 结束投票

预测

  • 获取预测
  • 创建预测
  • 结束预测

日程

  • 获取频道直播日程
  • 获取频道 iCalendar
  • 更新频道直播日程
  • 创建频道直播日程段
  • 更新频道直播日程段
  • 删除频道直播日程段

Search

  • 搜索类别
  • 搜索频道

Streams

  • 获取直播流密钥
  • 获取直播流
  • 创建直播流标记
  • 获取直播流标记

订阅

  • 获取主播订阅

标签

  • 获取所有直播流标签
  • 获取直播流标签
  • 替换直播流标签

Users(用户)

  • 获取用户
  • 更新用户
  • 获取用户关注
  • 创建用户关注
  • 删除用户关注
  • 获取用户黑名单
  • 屏蔽用户
  • 解除用户屏蔽
  • 获取用户扩展
  • 获取用户活动扩展
  • 更新用户扩展

视频

  • 获取视频
  • 删除视频

Webhooks

  • 获取 Webhook 订阅

GitHub

查看 Github