Add Telegram Bot webhook integration

This commit is contained in:
mwpn
2026-01-26 09:27:28 +07:00
parent 3f7f6e1be9
commit 44acff2a35
5 changed files with 737 additions and 76 deletions

View File

@@ -0,0 +1,73 @@
<?php
namespace App\Helpers;
class SessionHelper
{
private static $sessionFile;
private static function getSessionFile()
{
if (self::$sessionFile === null) {
$storageDir = __DIR__ . "/../../storage";
if (!file_exists($storageDir)) {
mkdir($storageDir, 0777, true);
}
self::$sessionFile = $storageDir . "/telegram_sessions.json";
}
return self::$sessionFile;
}
/**
* Load all sessions
*/
public static function loadSessions()
{
$file = self::getSessionFile();
if (!file_exists($file)) {
file_put_contents($file, json_encode(["sessions" => []], JSON_PRETTY_PRINT));
}
$json = json_decode(file_get_contents($file), true);
return $json["sessions"] ?? [];
}
/**
* Save all sessions
*/
public static function saveSessions($sessions)
{
$file = self::getSessionFile();
file_put_contents($file, json_encode(["sessions" => $sessions], JSON_PRETTY_PRINT));
}
/**
* Get session for a chat ID
*/
public static function getSession($chatId)
{
$sessions = self::loadSessions();
return $sessions[$chatId] ?? null;
}
/**
* Set session for a chat ID
*/
public static function setSession($chatId, $value)
{
$sessions = self::loadSessions();
$sessions[$chatId] = $value;
self::saveSessions($sessions);
}
/**
* Clear session for a chat ID
*/
public static function clearSession($chatId)
{
$sessions = self::loadSessions();
unset($sessions[$chatId]);
self::saveSessions($sessions);
}
}