simply-stream/twitch-api
Requires
- php: ^8.2
- ext-json: *
- cuyz/valinor: ^1.7
- league/oauth2-client: ^2.7
- psr/http-client: ^1.0
- psr/log: ^3.0
- webmozart/assert: ^1.11
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.38
- guzzlehttp/guzzle: ^7.8
- nyholm/psr7: ^1.8
- php-http/discovery: ^1.17
- phpstan/phpstan: ^1.10
- phpunit/phpunit: 10.4.2
Suggests
- guzzlehttp/guzzle: ^7.8
- nyholm/psr7: ^1.8
README
欢迎使用PHP Twitch Helix API库,这是一个功能强大且开发者友好的新Twitch API "Helix"实现,包含了强大的EventSub功能。该库无缝集成了Twitch的最新功能,为您的PHP项目提供了一个简单高效的方式与Twitch平台交互。
关键特性
Helix API支持:轻松利用Twitch Helix API的潜力。通过干净直观的PHP界面检索用户信息、访问流等。
EventSub功能:通过我们全面的EventSub实现拥抱Twitch事件处理的未来。确保您的应用与实时事件保持同步,确保及时准确的更新。
Webhook集成:我们的库完全支持EventSub的Webhook通信,实现Twitch与您的应用之间无缝通信。轻松了解用户活动和频道事件。
数据传输对象(DTOs):与传统的做法不同,我们的库采用数据传输对象(DTOs)将传入的JSON响应映射到PHP对象。这种抽象简化了Twitch数据处理,提高了代码的可读性和可维护性。
要查看实现API的完整列表,请参阅实现API部分。
安装
composer req simplystream/twitch-api
实现API
❗ = 由于缺乏mock-api-data,无法实现测试。映射应在Twitch生产系统上工作 ️️ℹ️ = 一些测试可用,一些由于缺乏mock-api数据而缺失。映射应在Twitch生产系统上工作
在此情况下,测试意味着存在功能或单元测试。
还有一个容器API服务,可以包含所有实现的API。请参阅TwitchApi。
EventSub
除了API,还有一个可用于处理EventSub的服务。此服务将处理对事件的注册以及通过验证Twitch发送的挑战来处理Webhook回调。
请注意,此包仅支持Webhook实现! 这是因为PHP可能不是用于长期运行过程(如WebSocket)的理想编程语言。
WebSocket
要使用WebSocket实现,您应检查以下项目
- TwitchLib (C#)
- Twurple (TypeScript) 和 文档
- 更多内容将陆续推出
用法
要启动所有内容,您需要设置一些东西。
$client = new Client(); // Same for the request factory, it just needs to implement the RequestFactoryInterface&StreamFactoryInterface. // Optionally the UriFactoryInterface, too, if you want to use the same object for the UriFactory. $requestFactory = new RequestFactory(); $apiClient = new ApiClient( $client, $requestFactory, new \CuyZ\Valinor\MapperBuilder(), $requestFactory, ['clientId' => 'YOUR_CLIENT_ID', 'webhook' => ['secret' => 'YOUR_SECRET']] ); $usersApi = new UsersApi($apiClient) $response = $usersApi->getUsers(logins: ['some_login_name'], accessToken: $accessToken); foreach($response->getData() as $user) { echo $user->getDisplayName(); }
使用您自己的客户端
此库不强制您实现另一个HTTP客户端,而是给您使用自己的客户端的机会。唯一的限制是:它必须是PSR-18兼容的,并实现接口 \Psr\Http\Client\ClientInterface。
我们建议使用全部包Guzzlehttp 或 PHP-HTTP 与PSR7实现 Nyholm/PSR7 或 Guzzle/PSR7。
AccessToken
在旧版本中,AccessToken曾经由内置到库中的TwitchProvider通过sendRequest方法自动生成。现在已移除该提供者,您需要自己为$api->sendRequest(...)方法提供AccessToken!
由于这个库仍然需要PHP league实现AccessTokenInterface,我们建议使用https://github.com/vertisan/oauth2-twitch-helix来生成AccessToken。
支持的框架
目前,只有对Symfony的集成。
- simplystream/twitch-api-bundle(仍在进行中,大部分代码已移至本仓库)
待办事项列表
尽管这个库的大部分功能已经准备好可以使用,但仍有很多工作要做。以下是按优先级大致排序的下一阶段内容的简要概述
- 创建器/构建器,以便轻松实例化API和可能的一些DTO,特别是TwitchApi类
- 中间件功能,以便轻松扩展请求(例如:RateLimitMiddleware)
- 贡献指南
贡献
我们欢迎贡献!请随意打开问题、提交拉取请求或加入我们的社区讨论。以下将提供贡献的简要指南。
支持
你非常喜欢这个项目,并想以不同于贡献的方式支持我们?请随意在Ko-fi上支持我♥️