-
Notifications
You must be signed in to change notification settings - Fork 4
Описание работы
На заданный адрес webhook (скрипт process.php) приходит запрос от серверов Telegram в формате JSON. Скрипт обрабатывает входящий запрос, расшифровывает JSON и переводит его в обычный массив в переменную $update
Обратите внимание, что для обработки входящего потока используется следующая конструкция:
$content = file_get_contents("php://input");
Возможно, это не сработает на некоторых версиях PHP или при определенных настройках сервера. В таком случае необходимо переписать конструкцию с использованием переменной $_POST, примерно так:
if(!empty($_POST))
{
$update = json_decode($_POST, true) or die('Invalid JSON');
}
Пример массива на выходе:
Array
(
[update_id] => 462641238
[message] => Array
(
[message_id] => 74973
[from] => Array
(
[id] => 41851891
[is_bot] =>
[first_name] => Dmitry
[username] => D13410N3
[language_code] => ru
)
`[chat] => Array`
`(`
`[id] => -1001467803922`
`[title] => ChatName`
`[type] => supergroup`
`)`
`[date] => 1572244135`
`[text] => Текст сообщения`
`)`
)
$_MESS
- (array) массив с информацией о сообщении, см. выше [message]
$_TEXT
- (string) строка с сообщением в strtolower(), см. выше [message] -> [text]
$_CHAT
- (array) массив с информацией о чате, где отправлено сообщение, см. выше [message'] -> [chat]
$_USER
- (array) массив с информацией о юзере, который отправил сообщение, см. выше [message] -> [from]
Если сообщение отправлено лично боту, $_CHAT['id'] будет равен $_USER['id']. Это очень удобно для проверки отправлено ли сообщение в ЛС боту, либо отправлено в чате.