simply-stream/twitch-api

1.1.2 2024-04-04 15:35 UTC

This package is auto-updated.

Last update: 2024-09-04 16:29:50 UTC


README

QA codecov

欢迎使用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实现,您应检查以下项目

用法

要启动所有内容,您需要设置一些东西。

$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

我们建议使用全部包GuzzlehttpPHP-HTTP 与PSR7实现 Nyholm/PSR7Guzzle/PSR7

AccessToken

在旧版本中,AccessToken曾经由内置到库中的TwitchProvider通过sendRequest方法自动生成。现在已移除该提供者,您需要自己为$api->sendRequest(...)方法提供AccessToken!

由于这个库仍然需要PHP league实现AccessTokenInterface,我们建议使用https://github.com/vertisan/oauth2-twitch-helix来生成AccessToken。

支持的框架

目前,只有对Symfony的集成。

待办事项列表

尽管这个库的大部分功能已经准备好可以使用,但仍有很多工作要做。以下是按优先级大致排序的下一阶段内容的简要概述

  • 创建器/构建器,以便轻松实例化API和可能的一些DTO,特别是TwitchApi类
  • 中间件功能,以便轻松扩展请求(例如:RateLimitMiddleware)
  • 贡献指南

贡献

我们欢迎贡献!请随意打开问题、提交拉取请求或加入我们的社区讨论。以下将提供贡献的简要指南。

支持

你非常喜欢这个项目,并想以不同于贡献的方式支持我们?请随意在Ko-fi上支持我♥️

ko-fi