PHPackages                             ghostzero/twitch-toolkit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ghostzero/twitch-toolkit

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

ghostzero/twitch-toolkit
========================

This package offers a twitch toolkit to simplify certain processes using laravel framework.

4.0.1(5y ago)22.7kMITPHPPHP ^7.4|^8.0

Since Sep 4Pushed 5y ago1 watchersCompare

[ Source](https://github.com/ghostzero/twitch-toolkit)[ Packagist](https://packagist.org/packages/ghostzero/twitch-toolkit)[ RSS](/packages/ghostzero-twitch-toolkit/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (9)Dependencies (5)Versions (12)Used By (0)

GhostZero's Twitch Toolkit
==========================

[](#ghostzeros-twitch-toolkit)

The main idea of this laravel package is to make it performant and easy to solve certain API problems with Twitch. Furthermore this package offers a toolkit to simplify certain processes (which have been provided by my [StreamKit](https://streamkit.gg/) platform):

- Twitch Username/ID Resolver &amp; Cache
- Twitch Extension Guard Middleware
- Twitch Webhook/Polling Management
- Twitch Webhooks as Laravel Events

TwitchUserResolver
------------------

[](#twitchuserresolver)

```
use GhostZero\TwitchToolkit\Utils\TwitchUserResolver;
use romanzipp\Twitch\Twitch;

// Fetch the user information from twitch based on the login or id.
// This response will be cached for 12h (because of rate limits).
if ($user = TwitchUserResolver::fetchUser('name or id', app(Twitch::class))) {
	$this->info("Fetched user {$user->login} successfully!");
}
```

WIP: TwitchExtGuard
-------------------

[](#wip-twitchextguard)

### 1. Register TwitchExtGuard (app/Providers/AuthServiceProvider.php)

[](#1-register-twitchextguard-appprovidersauthserviceproviderphp)

```
public function boot()
{
	...

	TwitchExtGuard::register(config('twitch-api.ext_secret'), new TwitchUserProvider);
}
```

### 2. Configure TwitchUserProvider

[](#2-configure-twitchuserprovider)

```
namespace App\Utils;

use App\User;
use GhostZero\TwitchToolkit\Auth\UserProvider;
use Illuminate\Contracts\Auth\Authenticatable;

class TwitchUserProvider extends UserProvider
{
	public function retrieveById($identifier): ?Authenticatable
	{
		/** @var User $user */
		$user = User::query()->whereKey($identifier)->first();

		return $user;
	}

	public function createFromTwitchToken($decoded): ?Authenticatable
	{
		return User::createFromTwitchToken($decoded);
	}
}
```

### 3. Guard

[](#3-guard)

```
