use TelegramCliWrapper\Storage\LocalFilesStorage; use TelegramCliWrapper\Response; use TelegramCliWrapper\Models\User; use TelegramCliWrapper\Services\Weather\OpenWeatherApi; use TelegramCliWrapper\Services\Media\MediaSelector; use TelegramCliWrapper\Services\Joke\IcndbApi; if (!isset($_SESSION['user'])) { return Response::error("illegal request"); } $userStorage = new LocalFilesStorage('user'); $user = $userStorage->getById($_SESSION['user']); if (!$user) { return Response::error("user does not exist"); } $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $messages = $t->getHistory($user->phone, 1); if (count($messages) < 1) { return Response::error('no messages received'); } $message = $messages[0]; if (intval($message->unread) != 1) { return Response::error("no unread messages"); } $text = strtolower(trim($message->text)); $response = ""; switch ($text) { case "help": $response = "These are the things you can ask me:\n" . "help => this info\n" . "remove me => remove my phone number from the system\n" . "send me a photo => invite system to send a photo\n" . "tell me a joke => I send to you something funny\n" . "say me the time => I send to you the current time on my timezone\n" . "weather => I send to you the weather where I live\n"; break; case "weather":
/** * @param UserInterface $user * @param MessageInterface $message * @return bool */ public function sendNotification(UserInterface $user, MessageInterface $message) { $this->telegramCli->msg($user->getPhoneNumber()->getValue(), $message->getText()); return true; }
$phone = trim($_POST['phone']); if (!preg_match("/^\\d{9,15}\$/", $phone)) { return Response::error('phone parameter does not seems a phone number'); } $userStorage = new LocalFilesStorage('user'); $user = $userStorage->getById($phone); if ($user) { return Response::error('phone exists already in this system'); } $phoneRequested = isset($_SESSION['phone_requested']) ? json_decode($_SESSION['phone_requested'], true) : array(); if (isset($phoneRequested[$phone]) && intval(date("U")) < $phoneRequested[$phone]) { return Response::error('phone already requested, you must to wait 15 minutes'); } $phoneRequested[$phone] = intval(date("U")) + 15 * 60 * 60; $_SESSION['phone_requested'] = json_encode($phoneRequested); $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $user = User::createUser($phone, $phone, ""); $t->addContact($user); // send message with code in order to validate phone $r = uniqid(); $user->code = substr($r, rand(1, strlen($r) - 6), 6); $userStorage->save($user); $msg = <<<EOD Welcome to the telegram-cli-wrapper proof of concept This is the code to access system, please keep it secret. Code: {$user->code} *Note: If this message was not solicited by you, please do not take in account. EOD; $t->msg($user->phone, $msg); return Response::ok();
<?php include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Models\User; $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); echo "These are my contacts" . PHP_EOL . User::getTitles() . PHP_EOL; $contacts = $t->getContactList(); foreach ($contacts as $contact) { echo $contact . PHP_EOL; } $t->quit();
<?php if ($argc < 3) { die("You have to invoke this program with addContact.php phone_number last_name first_name\n"); } include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Models\Dialog; $phone = $argv[1]; $peerSurname = $argv[2]; $peerName = $argv[3]; if (!preg_match("/^\\+\\d+/", $phone)) { die("Phone number must be: plus sign (+) country_code & number\n"); } $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $t->add_contact($phone, $peerName, $peerSurname); $t->quit();
<?php session_start(); include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Storage\LocalFilesStorage; use TelegramCliWrapper\Response; use TelegramCliWrapper\Models\User; if (!isset($_SESSION['user'])) { return Response::error("illegal request"); } $userStorage = new LocalFilesStorage('user'); $user = $userStorage->getById($_SESSION['user']); if (!$user) { return Response::error("user does not exist"); } if (!isset($_POST['text'])) { return Response::error("text parameter missing"); } $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $t->msg($user->phone, $_POST['text']); return Response::ok();
<?php if (!isset($argv[1])) { die("You have to call this program with the peer you want to see his info\n"); } include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Models\User; $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $peer = trim($argv[1]); echo "The info for '{$peer}' is " . PHP_EOL . User::getTitles() . PHP_EOL . $t->getUserInfo($peer) . PHP_EOL; $t->quit();
<?php session_start(); include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Storage\LocalFilesStorage; use TelegramCliWrapper\Response; use TelegramCliWrapper\Models\User; if (!isset($_SESSION['user'])) { return Response::error("illegal request"); } $userStorage = new LocalFilesStorage('user'); $user = $userStorage->getById($_SESSION['user']); if (!$user) { return Response::error("user does not exist"); } $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $messages = $t->getHistory($user->phone, 100); $result = array(); foreach ($messages as $message) { $result[] = array('text' => nl2br($message->text), 'from' => $message->from->phone, 'to' => $message->to->phone, 'date' => date("y.m.d H:j:s", $message->date)); } return Response::ok(array('messages' => $result));
<?php include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Models\User; $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); echo "These are my current dialogs" . PHP_EOL . User::getTitles() . PHP_EOL; $currentDialogs = $t->getDialogList(); foreach ($currentDialogs as $currentDialog) { echo $currentDialog . PHP_EOL; } $t->quit();
<?php session_start(); include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Storage\LocalFilesStorage; use TelegramCliWrapper\Response; use TelegramCliWrapper\Models\User; if (!isset($_SESSION['user'])) { return Response::error("illegal request"); } $userStorage = new LocalFilesStorage('user'); $user = $userStorage->getById($_SESSION['user']); if (!$user) { return Response::error("user does not exist"); } $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $user = $t->getUserInfo($user->phone); $result = array('phone' => $user->phone, 'last_name' => $user->last_name, 'first_name' => $user->first_name, 'print_name' => $user->print_name, 'id' => $user->id, 'flags' => $user->flags); return Response::ok(array('user' => $result));
<?php include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Models\User; $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); echo "this is me" . PHP_EOL . User::getTitles() . PHP_EOL . $t->whoAmI() . PHP_EOL; $t->quit();
<?php if (!isset($argv[1])) { die("You have to call this program with the peer you want to see current messages\n"); } include_once __DIR__ . '/../vendor/autoload.php'; use TelegramCliWrapper\TelegramCliWrapper; use TelegramCliWrapper\TelegramCliHelper; use TelegramCliWrapper\Models\Dialog; $th = TelegramCliHelper::getInstance(); $t = new TelegramCliWrapper($th->getSocket(), $th->isDebug()); $peer = trim($argv[1]); $n = isset($argv[2]) ? intval($argv[2]) : 5; print "The last {$n} messages with '{$peer}' are " . PHP_EOL . Dialog::getTitles() . PHP_EOL; $history = $t->getHistory($peer, $n); foreach ($history as $historyItem) { print $historyItem . PHP_EOL; } $t->quit();