sh20raj / phpgram
A PHP library for interacting with the Telegram Bot API.
Requires
- php: >=7.0
- ext-curl: *
README
PhpGram is a PHP library for interacting with the Telegram Bot API, providing easy-to-use methods for sending messages, media, managing chats, stickers, inline queries, payments, and more.
Table of Contents
Installation
Install PhpGram via Composer:
composer require sh20raj/phpgram
Alternatively, you can clone the repository:
git clone https://github.com/SH20RAJ/phpgram.git
Usage
Initialization
First, include the library in your PHP file and initialize PhpGram
with your bot token:
require __DIR__ . '/../src/PhpGram.php'; use PhpGram\PhpGram; $token = 'YOUR_BOT_TOKEN'; $bot = new PhpGram($token);
Basic Usage
Try Example: Toss Bot (Toss a coin and get the result or roll a dice)
// Example: Get bot information $botInfo = $bot->getMe(); echo 'Bot Username: ' . $botInfo['result']['username'] . PHP_EOL;
Sending Messages and Media
Sending Text Messages
// Send a text message $chatId = 'YOUR_CHAT_ID'; $message = 'Hello from PhpGram!'; $response = $bot->sendMessage($chatId, $message);
Sending Photos
// Send a photo $photoPath = 'path/to/photo.jpg'; $response = $bot->sendPhoto($chatId, $photoPath, ['caption' => 'Check out this photo!']);
Sending Audio
// Send an audio file $audioPath = 'path/to/audio.mp3'; $response = $bot->sendAudio($chatId, $audioPath, ['caption' => 'Listen to this audio!']);
Sending Documents
// Send a document $documentPath = 'path/to/document.pdf'; $response = $bot->sendDocument($chatId, $documentPath, ['caption' => 'Here is your document.']);
Sending Videos
// Send a video $videoPath = 'path/to/video.mp4'; $response = $bot->sendVideo($chatId, $videoPath, ['caption' => 'Watch this video!']);
Sending Animations
// Send an animation $animationPath = 'path/to/animation.gif'; $response = $bot->sendAnimation($chatId, $animationPath, ['caption' => 'Enjoy this animation!']);
Sending Voice Messages
// Send a voice message $voicePath = 'path/to/voice.ogg'; $response = $bot->sendVoice($chatId, $voicePath, ['caption' => 'Listen to this voice message!']);
Sending Video Notes
// Send a video note $videoNotePath = 'path/to/video_note.mp4'; $response = $bot->sendVideoNote($chatId, $videoNotePath);
Sending Media Groups
// Send a media group $mediaGroup = [ ['type' => 'photo', 'media' => 'path/to/photo1.jpg'], ['type' => 'photo', 'media' => 'path/to/photo2.jpg'], ]; $response = $bot->sendMediaGroup($chatId, $mediaGroup);
Sending Locations
// Send a location $response = $bot->sendLocation($chatId, 40.712776, -74.005974); // New York City coordinates
Sending Venues
// Send a venue $response = $bot->sendVenue($chatId, 40.712776, -74.005974, 'Venue Name', 'Venue Address');
Sending Contacts
// Send a contact $response = $bot->sendContact($chatId, 'PHONE_NUMBER', 'FirstName', ['last_name' => 'LastName']);
Sending Polls
// Send a poll $response = $bot->sendPoll($chatId, 'Your Question?', ['Option 1', 'Option 2']);
Sending Dice
// Send a dice $response = $bot->sendDice($chatId);
Managing Chats and Members
// Kick a member from a chat $userId = 'USER_ID_TO_KICK'; $response = $bot->kickChatMember($chatId, $userId); // Unban a member from a chat $response = $bot->unbanChatMember($chatId, $userId); // Restrict a member in a chat $permissions = ['can_send_messages' => false]; $response = $bot->restrictChatMember($chatId, $userId, $permissions); // Promote a member to an admin $response = $bot->promoteChatMember($chatId, $userId); // Set custom title for an admin $response = $bot->setChatAdministratorCustomTitle($chatId, $userId, 'Custom Title');
Handling Stickers
// Send a sticker $stickerPath = 'path/to/sticker.webp'; $response = $bot->sendSticker($chatId, $stickerPath); // Get a sticker set $stickerSetName = 'sticker_set_name'; $response = $bot->getStickerSet($stickerSetName); // Upload a sticker file $stickerFilePath = 'path/to/sticker.png'; $response = $bot->uploadStickerFile($userId, $stickerFilePath); // Create a new sticker set $stickerParams = [ 'name' => 'sticker_set_name', 'title' => 'Sticker Set Title', 'png_sticker' => 'path/to/sticker.png', 'emojis' => '😀', ]; $response = $bot->createNewStickerSet($userId, $stickerParams); // Add a sticker to a set $response = $bot->addStickerToSet($userId, 'sticker_set_name', 'path/to/sticker.png', '😀'); // Set sticker position in a set $response = $bot->setStickerPositionInSet('sticker_file_id', 0); // Delete a sticker from a set $response = $bot->deleteStickerFromSet('sticker_file_id');
Inline Mode
// Answer an inline query $inlineQueryId = 'INLINE_QUERY_ID'; $results = [ /* Array of InlineQueryResult objects */ ]; $response = $bot->answerInlineQuery($inlineQueryId, $results);
Payments
// Send an invoice $invoiceParams = [ 'title' => 'Product Name', 'description' => 'Description of the product', 'payload' => 'unique_payload', 'provider_token' => 'PROVIDER_PAYMENT_TOKEN', 'start_parameter' => 'start_param', 'currency' => 'USD', 'prices' => json_encode([ ['label' => 'Product Price', 'amount' => 1000] ]), ]; $response = $bot->sendInvoice($chatId, $invoiceParams); // Answer a shipping query $shippingQueryId = 'SHIPPING_QUERY_ID'; $response = $bot->answerShippingQuery($shippingQueryId, true); // Answer a pre-checkout query $preCheckoutQueryId = 'PRE_CHECKOUT_QUERY_ID'; $response = $bot->answerPreCheckoutQuery($preCheckoutQueryId, true);
Games
// Send a game $gameShortName = 'game_short_name'; $response = $bot->sendGame($chatId, $gameShortName); // Set game score $response = $bot->setGameScore($userId, 100); // Get game high scores $response = $bot->getGameHighScores($userId);
Handling Updates
// Get updates $updates = $bot->getUpdates(); // Set a webhook $response = $bot->setWebhook('https://yourdomain.com/webhook'); // Delete a webhook $response = $bot->deleteWebhook(); // Get webhook info $response = $bot->getWebhookInfo();
Contributing
Contributions are welcome! Fork the repository, make your changes, and submit a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Important Links
https://dev.to/sh20raj/how-to-create-a-telegram-bot-using-php-4hbd https://dev.to/sh20raj/phpgram-a-php-library-for-interacting-with-the-telegram-bot-api-3pip