Git Product home page Git Product logo

telegrambotsdk's Introduction

TelegramBotSDK

Library for Telegram Bot API on PHP.

Using

Create Telegram client

$tg = new Telegram\Client("___BOT_API_SECRET___");

Set webhook

This should be done only once.

$tg->performSingleMethod(new Telegram\Method\SetWebhookInfo("http://example.com/handler.php"));

Get message from webhook

$tg->onMessage(function(Telegram\Client $tg, Telegram\Model\Message $message) {
    $fromUserId = $message->getFrom()->getId();
    // do something...
);

Reply to message

$reply = new Telegram\Method\SendMessage($toId, $text);
$tg->performSingleMethod($reply);

or, if reply using in listener webhook...

$tg->onMessage(function(Telegram\Client $tg, Telegram\Model\Message $message) {
    
    $reply = new Telegram\Method\SendMessage($message->getChatId());
    
    $text = getSomeText(); // TODO
    $reply->setText($text);
 
    // If need, we can set parse mode - markdown or html   
    $reply->setParseMode(ParseMode::MARKDOWN);
    
    $tg->performHookMethod($reply);
    exit; // prevent output unnecessary data and stop script
});

Using keyboard in message

Create keyboard

... and send it in message

use Telegram\Model\Keyboard\InlineKeyboard;
use Telegram\Model\Keyboard\InlineKeyboardButton;
use Telegram\Method\SendMessage;

// ...

// create keyboard
$keyboard = new InlineKeyboard;

// create row in keyboard
$row = $keyboard->addRow();

// create button
$button = new InlineKeyboardButton("Awesome button");
// set callback data
$button->setCallback("sayHello");

// create message
$reply = new SendMessage($message->getChatId());
// set text
$reply->setText("Click on button below");
// set keyboard in message
$reply->setReplyMarkup($keyboard);
// send message
$tg->performSingleMethod($reply);

Catch click on button in CallbackQuery

$tg->onCallbackQuery(function(Telegram\Client $tg, Telegram\Model\Response\CallbackQuery $query) {
    if ($query->getData() === "sayHello") {
        $upd = new EditMessageText(
            $query->getChatId(),
            $query->getMessageId());
            
        $upd->setText("Hello, world!");
        
        $tg->performHookMethod($upd);
    }
});

telegrambotsdk's People

Contributors

vladislav805 avatar vkdg avatar

Watchers

James Cloos avatar Sergey Bunevich avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.