wrapper class for tg bot api
A wrapper class for Telegram Bot API, (*2)
create composer.json :, (*3)
{ "require": { "smoqadam/php-telegram-bot": "v1.0" } }
$ composer install
, (*4)
Smoqadam\Telegram
is a wrapper around Telegram bot API. After you instantiate Telegram
object, you can register callbacks on the updates you receive and then respond accordingly., (*5)
Register callbacks: Use following functions:
- cmd()
, all normal messages
- inlineQuery()
, (*6)
API Methods:
The available methods are almost same of official Telegram API (for now the wrapper does not natively handles games and messages update):
- sendMessage()
, getMe()
, forwardMessage()
, sendPhoto()
, sendVideo()
, sendSticker()
, sendLocation()
, sendDocument()
, sendAudio()
, sendChatAction()
, getUserProfilePhotos()
, answerInlineQuery()
, (*7)
Getting current update:
The current update is stored in the property Telegram::result
(that is an object)., (*8)
Inline Result helper:
To facilitate the creation of Inline Bot there are some helper classes under namespace InlineQuery\Result
:
- Article
, (*9)
Keyboards helper:
Also the same with keyboards; namespace is Keyboard
:
- Standard
, classic keyboard
- Remove
, remove custom keyboard and show letter-keyboard
- Inline
, inline keyboard, (*10)
Use Keyboard:
Use the keyboard is pretty simple with helpers, after you instantiate keyboard (Standard
or Inline
) you use:
- addButton()
- addRow()
, (*11)
Note: These methods are chainable., (*12)
Using long polling:, (*13)
<?php require 'vendor/autoload.php'; use Smoqadam\Telegram; $tg = new Telegram('API_TOKEN'); $tg->cmd('\/name:<<[a-zA-Z]{0,}>>', function ($args) use ($tg){ $tg->sendMessage("my username is @".$args , $tg->getChatId()); }); $tg->cmd('\/number: <<:num>>' , function($args) use($tg){ $tg->sendMessage("your number is : ".$args , $tg->getChatId()); }); $tg->cmd('Hello',function () use ($tg){ $tg->sendChatAction(Telegram::ACTION_TYPING); $image = 'urltoqrcode.png'; $tg->sendPhoto($image); }); $tg->run();
Using webHooks:, (*14)
If you want to use webhooks you have to first call setWebhook
method or open the following URL with your own data:, (*15)
https://api.telegram.org/API_TOKEN/setWebhook?url=https://yourdomain.com/index.php
, (*16)
please change API_TOKEN and url parameter, (*17)
<?php require 'vendor/autoload.php'; $message = file_get_contents('php://input'); use Smoqadam\Telegram; $tg = new Telegram('API_TOKEN'); $tg->cmd('\/name:<<[a-zA-Z]{0,}>>', function ($args) use ($tg){ $tg->sendMessage("my username is @".$args , $tg->getChatId()); }); $tg->cmd('\/number: <<:num>>' , function($args) use($tg){ $tg->sendMessage("your number is : ".$args , $tg->getChatId()); }); $tg->cmd('Hello',function () use ($tg){ $tg->sendChatAction(Telegram::ACTION_TYPING); $image = 'urltoqrcode.png'; $tg->sendPhoto($image); }); $tg->process(json_decode($message, true));
Now when you send /number 123
in telegram bot page , bot will answer to you your number is 123
, (*18)
You can set argument in regex between << and >>, (*19)
$ php index.php
, (*20)