Skip to content

botfire/botfire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Robot Library PHP Composer

Latest Stable Version Total Downloads


Botfire is a modern library that is used to build different types of Telegram bot projects. Likewise, a dedicated framework has been created for this purpose, which doubles the simplicity of construction and development


Install Botfire Library

composer require botfire/botfire

use

use botfire\botfire\bot;

Set Token

bot::token('your-bot-token');
bot::autoInput();

Webhook

Set Webhook

$result = bot::webhook()->url( $url )->set();

Get Webhook

$get = bot::webhook()->getInfo();

echo $get;

Message

Send Message

bot::id($chat_id)->message('...')->send();

// auto set chat_id
bot::this()->message('...')->send();

Send Photo

bot::id($chat->id)->photo($file_id)->send();

Send Audio

bot::id($chat->id)->audio($file_id)->send();

Send Voice

bot::id($chat->id)->voice($file_id)->send();

Send Video Note

bot::id($chat->id)->videoNote($file_id)->send();

Send Video

bot::id($chat->id)->video($file_id)->send();

Send Animation

bot::id($chat->id)->animation($file_id)->send();

Send Document

bot::id($chat->id)->document($file_id)->send();

Send Contact

bot::id($chat->id)->contact($phone_number,$first_name,$last_name)->send();

Send chat action

bot::id($chat->id)->chatAction($action)->send();

'typing','upload_photo','record_video','upload_video','record_audio','upload_audio','upload_document','find_location','record_video_note','upload_video_note'


Send MediaGroup docs


Edit Message

Edit message

bot::id($chat->id)->editMessage('new text')->message_id($msg_id)->send();

Edit caption

bot::id($chat->id)->editCaption('caption text')->message_id($msg_id)->send();

Edit reply markup

$k = bot::keyboard();
$k->btn('hello inline button','callback data')->row();

bot::id($chat->id)->editReplyMarkup()->keyboard( $k )->send();

Delete message

bot::id($chat->id)->deleteMessage()->message_id($msg_id)->send();

Receive user messages via webhook

Get message text

$text = bot::text();

get message caption

$caption = bot::caption();

Get callback data

$data = bot::data();

Get message id

$msg_id = bot::message_id();

Get all message Object

$msg = bot::getMessage();

Get All receive Object

$get = bot::json(); // object

$get = bot::input(); // text

User Type

if( bot::isUser() ){
  // Receive private messages
}
else if( bot::isGroup() ){
  // Receive from super group
}
else if( ! bot::isGroup() && bot::isGroup(true)  ){
  // Receive from normal group
}
else if( bot::isChannel() ){
  // Receive channel post
}

Request Type

if( bot::getCallback() ){
  // When I click on the inline button
  
  $data = bot::data();
  
  //...
}
else {
  // When I send normal text
  // ...
}

Receive edited message

if (bot::getEditedMessage()) {
  // ...
}

// for channel
if(bot::getEditedChannelPost()){
  // ...
}

Answer Callback

Answer

bot::this()->answerCallback()->send();

Answer and send alert

bot::this()->answerCallback(true)->text('hello')->send();

Sender

Get chat info

$chat = bot::chat();

Get From

$from = bot::from();

Keyboard

inline keyboard

$k = bot::keyboard();

$k
->btn('btn name 1','data callback 1')
->btn('btn name 2','data callback 2')
->row()
->btnUrl('btn name 3','https://github.com')
->row();

bot::id(bot::chat()->id)->message('...')->keyboard($k)->send();

markup keyboard

markup($resize_keyboard,$one_time_keyboard,$selective)

example

$k = bot::keyboard();

$k->markup(true)->btn('button name')->row();

bot::id(bot::chat()->id)->message('...')->keyboard($k)->send();

can use autoRow method

$k = bot::keyboard();

foreach($list as $item){
  $k->btn($item->name,$item->value);
}

// Creates two buttons in each row
$k->autoRow(2);

bot::this()->message(...)->keyboard($k)->send();


/*
out:
______________
| btn1 | btn2 |
_______________
| btn3 | btn4 |
*/

send user contatc

$k = bot::keyboard()->markup(true)->contact('Send Phone')->row();

bot::id(bot::chat()->id)->message('Click Send Phone Button')->keyboard($k)->send();

Bot Info

$info = bot::getMe();

bot::id($chat_id)->message($info)->send();

User Profile

method : getUserProfilePhotos($user_id,$offset=null,$limit=null)

sample

$profile = bot::getUserProfilePhotos(bot::chat()->id);

Available message method

usage

bot::this()->photo($file_id)->caption($text)->send();
method ***
caption($text) media message caption
message_id($msg_id)
inline_message_id($inline_msg_id)
callback_query_id($query_id)
parse_mode($type) Send Markdown or HTML
vcard($vcard)
disable_web_page_preview($bool)
disable_notification($bool)
live_period($int) should be between 60 and 86400
reply_to($message_id)
duration($duration)
performer($performer)
title($title)
width($int)
height($int)
supports_streaming($bool)
thumb($thumb)
length($int)
latitude($latitude)
longitude($longitude)
foursquare_id($foursquare_id)
foursquare_type($foursquare_type)

Permissions

setChatPermissions

Use this method to set default chat permissions for all members

bot::this()
      ->setChatPermissions()
      ->can_change_info(false)
      ->send();
/*
| methods : 
|
| can_send_messages(true|false)
| can_send_media_messages(true|false)
| can_send_polls(true|false)
| can_send_other_messages(true|false)
| can_add_web_page_previews(true|false)
| can_change_info(true|false)
| can_invite_users(true|false)
| can_pin_messages(true|false)
|
*/

restrictChatMember($user_id,$until_date=null)

Use this method to restrict a user in a supergroup

bot::this()
    ->restrictChatMember(chat_id)
    ->can_send_polls(false)
    ->send();
/*
| methods : 
|
| can_send_messages(true|false)
| can_send_media_messages(true|false)
| can_send_polls(true|false)
| can_send_other_messages(true|false)
| can_add_web_page_previews(true|false)
| can_change_info(true|false)
| can_invite_users(true|false)
| can_pin_messages(true|false)
|
*/