Writing PHP Code in Bots Mother Code Editor
Learn how to write PHP code in the Bots Mother code editor to create interactive Telegram bots. This guide covers accessing the editor, using Telegram webhook variables
Writing PHP Code in Bots Mother Code Editor
This guide explains how to write PHP code in the Bots Mother platform’s code editor after adding a command for your Telegram bot. It covers accessing the code editor, using the Telegram webhook payload variables ($update, $TGUser, $updateType, $message, $chatId), and leveraging the BotAPI library to create dynamic bot interactions. With the "Wait for Answer" feature, your code executes when users reply, allowing you to build powerful, interactive bot logic.
Accessing the Code Editor
After adding a command in Bots Mother, you can write custom PHP code to handle user replies. Follow these steps to reach the code editor:
Navigate to Bots Mother: Log in to the Bots Mother platform.
Go to My Bots: From the dashboard, click “My Bots.”
Select Your Bot: Find your bot and click “View.”
Open Commands Tab: Go to the “Commands” tab to see your bot’s commands.
Add or Edit a Command:
To add a new command, click “Add Command,” fill out the form (e.g., set
/startas the command, enable “Wait for Answer”), and save.To edit an existing command, click “Edit Settings” next to the command.
Enter the Code Editor: Click “Edit Code” for the command. This opens the PHP code editor, where you can write logic that runs when a user replies to the command.
In the code editor, you have access to the full Telegram webhook payload via the $update variable, along with helper variables like $TGUser, $updateType, $message, and $chatId. These variables allow you to process user input and interact with the Telegram API using BotAPI methods.
Understanding Telegram Webhook Variables
The Bots Mother code editor provides several variables derived from the Telegram webhook payload. These variables simplify access to key data about the user’s interaction. Below is a detailed description of each:
$update(array) The complete Telegram webhook payload, containing all details about the update. It includes fields likemessage,callback_query,chat,from, and more, depending on the update type. Use this for advanced logic requiring full access to Telegram’s data. Example:$update['message']['text']retrieves the text of a user’s message.$TGUser(array) The user object from the Telegram update, representing the user who triggered the command or sent a reply. It typically includes fields likeid,first_name,username, andlanguage_code. Example:$TGUser['first_name']gets the user’s first name.$updateType(string) The type of the Telegram update, indicating the kind of interaction (e.g.,message,callback_query,chat_member). Use this to conditionally handle different update types. Example: Check if$updateType === 'message'to process text messages.$message(string) The plain text message sent by the user. This is useful for commands that wait for user input after an auto-answer. Example: If a user replies “Hello,”$messagecontains “Hello.”$chatId(int|string) The Telegram chat ID where the interaction occurred. This could be a private chat, group, or channel ID. Use it to send responses to the correct chat. Example:$chatIdmight be123456789for a private chat.
These variables are automatically available in the code editor when your command’s PHP code runs, triggered by a user’s reply (if “Wait for Answer” is enabled).
Writing PHP Code with BotAPI
In the code editor, you can write PHP code to process user input and interact with Telegram using the BotAPI library. The library provides methods like BotAPI::sendMessage, BotAPI::sendPhoto, and others to send responses, manage chats, and more. Below are examples demonstrating how to use the webhook variables and BotAPI methods to create interactive bot logic.
Example 1: Simple Reply to User Input
This example sends a personalized response based on the user’s reply to a /greet command.
Setup: Add a /greet command with “Wait for Answer” enabled and an auto-answer like “Please tell me something!” When the user replies, the code runs, using $TGUser['first_name'] for the name, $message for their input, and $chatId to send the response.
Example 2: Handling Specific User Input
This example checks the user’s reply and sends a photo if they type “photo.”
Setup: Add a command (e.g., /show) with “Wait for Answer” enabled. The code checks $message and uses BotAPI::sendPhoto or BotAPI::sendMessage based on the input.
Example 3: Using the Full $update Payload
$update PayloadThis example processes a callback query from an inline keyboard using the $update payload.
Setup: Add a command with an inline keyboard (configured in the “Keyboards” field) and “Wait for Answer” enabled. The code uses $update['callback_query'] to access callback data and responds with BotAPI::answerCallbackQuery and BotAPI::sendMessage.
Example 4: Managing Chat Members
This example bans a user if an admin types their user ID in a group chat.
Setup: Add a /ban command with “Wait for Answer” enabled and “Chat Type” set to “Group.” The code uses $message as the user ID and calls BotAPI::banChatMember.
Tips for Writing Effective Code
Validate Inputs: Always check
$updateTypeand validate$messageor$TGUserto avoid errors (e.g.,if (isset($TGUser['id']))).Use
$updatefor Advanced Logic: Access nested fields like$update['message']['reply_to_message']for replies or$update['chat']['type']to check chat type.Leverage BotAPI Methods: Combine methods like
BotAPI::sendPoll,BotAPI::sendLocation, orBotAPI::editMessageTextfor rich interactions. Refer to the BotAPI Library Functions for all available methods.Debugging: Use
BotAPI::sendMessageto log variable values (e.g.,BotAPI::sendMessage(['chat_id' => $chatId, 'text' => print_r($update, true)])) for debugging.Handle "Wait for Answer": Since the code runs only after a user reply (when “Wait for Answer” is enabled), ensure your logic processes
$messageor$updateappropriately.Error Handling: Wrap BotAPI calls in try-catch blocks if the library supports it, or check return values to handle API errors.
Available BotAPI Methods
The BotAPI library provides a wide range of methods to interact with Telegram. Some commonly used methods include:
BotAPI::sendMessage($params): Send text messages.BotAPI::sendPhoto($params): Send photos.BotAPI::sendPoll($params): Create polls.BotAPI::editMessageText($params): Edit sent messages.BotAPI::banChatMember($params): Manage chat members.
For a complete list, refer to the BotAPI Library Functions documentation.
Example Workflow
Add a
/feedbackcommand with:Auto Answer: “Please share your feedback!”
Wait for Answer: Enabled
Chat Type: Private
In the code editor, write:
When a user types
/feedbackand replies with “Great bot!”, the bot responds with “Thank you, [User]! Your feedback: Great bot!”
Last updated