В этой статье создадим telegram бота, который будет обмениваться данными с нашим сайтом devopser.online через API с использованием языка программирования PHP.
Первым что нужно сделать это создать бота. Бот в телеграмме создаётся с помощью бота botFather.
1. Заходим в телеграмм и в поиске пишем botFather, и с помощью меню создаём нового бота. Даём имя боту, username.
Дальше бот выдаёт ссылку на бот и его ТОКЕН.
2. Теперь нужно в нашем боте зарегистрировать ссылку на сайте (куда будут приходит запросы от сайта)
https://api.telegram.org/bot-ТОКЕН-/setWebhook?url=https://devopser.online/api_telegram.php

В -ТОКЕН- необходимо вставить ТОКЕН из бота.
https://devopser.online/api_telegram.php это ссылка на сайте где будут обрабатываться запросы из бота.

Далее создаём PHP файл api_telegram.php на хостинге и пишем код.
-ТОКЕН- токен из бота

<?php
$data = json_decode(file_get_contents('php://input'), TRUE);
$data = $data['callback_query'] ? $data['callback_query'] : $data['message'];
define('TOKEN','-TOKEN-');
$message = mb_strtolower(($data['text'] ? $data['text'] : $data['data']), 'utf-8');
switch ($message) {
case 'контакты':
$method = 'sendMessage';
$send_data = ['text' => 'Наша почта morkovin@devopser.online','parse_mode' => 'HTML'];
break;
default:
$method = 'sendMessage';
$send_data = [
'text' => 'Что Вас интересует?',
'reply_markup' => [
'resize_keyboard' => true,
'remove_keyboard' => true,
'hide_keyboard' => true,
'keyboard' => [
[['text' => 'Контакты'],],
[['text' => 'Меню 1'],['text' => 'Меню 2'],],
[['text' => 'Главное меню'],],
]
]
];
}
$send_data['chat_id'] = $data['chat'] ['id'];
$res = sendTelegram($method, $send_data);
function sendTelegram($method, $data, $headers = [])
{
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://api.telegram.org/bot' . TOKEN . '/' . $method,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array_merge(array('Content-Type: application/json'))
]);
$result = curl_exec($curl);
curl_close($curl);
return (json_decode($result, 1) ? json_decode($result, 1) : $result);
}
?>