1. Go to this page and download the library: Download codewiser/telegram-channel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use \Illuminate\Database\Eloquent\Model;
use \Codewiser\Telegram\Contracts\TelegramNotifiable;
class User extends Model implements TelegramNotifiable
{
public function routeNotificationForTelegram($notification = null): mixed
{
return $this->telegram;
}
public function setRouteForTelegram($route): void
{
$this->telegram = $route;
$this->save();
}
}
use \Codewiser\Telegram\Contracts\TelegramNotifiableProvider;
class TelegramUserProvider implements TelegramNotifiableProvider
{
/**
* Issue and remember new token for a given notifiable.
*/
public function generateToken(TelegramNotifiable $notifiable): string
{
$token = Str::random(40);
cache()->set(
$token,
$notifiable->getKey(),
now()->addMinutes(5)
);
return $token;
}
/**
* Find notifiable associated with a given token.
*/
public function resolveToken(string $token): ?TelegramNotifiable
{
$key = cache()->pull($token);
if ($key) {
return User::query()->find($key);
}
return null;
}
}
public function register()
{
$this->app->singleton(TelegramNotifiableProvider::class, fn() => new TelegramUserProvider);
}
use \Illuminate\Http\Request;
use \Codewiser\Telegram\TelegramService;
class DeeplinkController extends Controller
{
public function __invoke(Request $request, TelegramService $service) {
return $service->getDeeplink($request->user());
}
}
class Notification extends \Illuminate\Notifications\Notification
{
/**
* Get the notification's delivery channels.
*/
public function via(object $notifiable): array
{
return ['mail', 'telegram'];
}
/**
* Get the telegram representation of the notification.
*/
public function toTelegram(object $notifiable)
{
//
}
}
use \Codewiser\Telegram\Listeners\UnsubscribeTelegramNotifiable;
use \Illuminate\Notifications\Events\NotificationFailed;
public function boot(): void
{
Event::listen(
NotificationFailed::class,
UnsubscribeTelegramNotifiable::class,
);
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.