Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
php:telegram [2015/11/10 08:46] – [Исходники] mirocow | php:telegram [2015/11/14 15:22] (текущий) – [Запуск бота] mirocow | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | {{tag> | + | {{tag> |
====== Telegram BOT API (Yii2) ====== | ====== Telegram BOT API (Yii2) ====== | ||
Строка 10: | Строка 10: | ||
@BotFather | @BotFather | ||
</ | </ | ||
- | ===== Описание ===== | + | ===== Описание |
- | Данные получаются в формате JSON через [[https://core.telegram.org/bots/api#setwebhook|Webhook]] | + | Пример реализации на **[[https://github.com/Mirocow/yii2-telegram-api|mirocow/ |
+ | |||
+ | ==== Настройка ==== | ||
<code php> | <code php> | ||
- | file_get_contents('php://input') | + | 'modules' |
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | ], | ||
+ | ], | ||
</ | </ | ||
- | Отправка | + | ==== Запуск бота |
- | Простой пример приветствия завязанного на [[https:// | + | <code sh> |
+ | $ php ./yii mirocow\telegram\bot | ||
+ | </ | ||
+ | |||
+ | Бот имеет | ||
+ | |||
+ | === Создание команд бота === | ||
+ | |||
+ | nano app\commands\HelpCommand | ||
<code php> | <code php> | ||
- | actionInit(){ | + | namespace mirocow\telegram\commands; |
+ | |||
+ | use mirocow\telegram\interfaces\CommandInterface; | ||
+ | |||
+ | class HelpCommand implements CommandInterface { | ||
+ | |||
+ | public function run(\Zelenin\Telegram\Bot\Type\Update $update){ | ||
+ | |||
+ | return <<< | ||
+ | |||
+ | Help coomand | ||
+ | |||
+ | HELP; | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | ==== Отправка сообщений ==== | ||
+ | |||
+ | <code php> | ||
+ | </ | ||
+ | ===== Описание реализации на akalongman/ | ||
+ | |||
+ | Пример реализации на **[[https:// | ||
+ | |||
+ | ==== Webhook ==== | ||
+ | |||
+ | Простой пример приветствия завязанного на [[https:// | ||
+ | |||
+ | <code php> | ||
+ | class APIController | ||
| | ||
- | $gram=json_decode(file_get_contents('php://input'),true); | + | |
+ | public $BOT_NAME = ' | ||
+ | public $API_CERTIFICATE = ''; | ||
+ | |||
+ | public function init(){ | ||
- | | + | try { |
- | .$gram[' | + | |
- | .$gram[' | + | |
- | .$gram[' | + | |
- | file_get_contents(' | + | echo $telegram-> |
- | .$gram[' | + | } catch (Longman\TelegramBot\Exception\TelegramException |
- | | + | echo $e-> |
+ | } | ||
| | ||
- | } | + | |
+ | |||
+ | public function actionInit(){ | ||
+ | |||
+ | try { | ||
+ | $telegram = new Longman\TelegramBot\Telegram($this-> | ||
+ | $telegram-> | ||
+ | $telegram-> | ||
+ | } catch (Longman\TelegramBot\Exception\TelegramException $e) { | ||
+ | // echo $e-> | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
</ | </ | ||
- | ===== SSL for WebHook | + | |
+ | === SSL for WebHook === | ||
* http:// | * http:// | ||
- | * https:// | + | * https:// |
+ | |||
+ | ==== getUpdates ==== | ||
+ | |||
+ | Другой метод не требует наличия SSL - это [[https:// | ||
+ | |||
+ | <code php> | ||
+ | class APIController { | ||
+ | |||
+ | public $API_KEY = ' | ||
+ | public $BOT_NAME = ' | ||
+ | public $COMMANDS_FOLDER = ' | ||
+ | |||
+ | public function init(){ | ||
+ | |||
+ | try { | ||
+ | $telegram = new Longman\TelegramBot\Telegram($this-> | ||
+ | $telegram-> | ||
+ | $telegram-> | ||
+ | $telegram-> | ||
+ | } catch (Longman\TelegramBot\Exception\TelegramException $e) { | ||
+ | echo $e-> | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
===== Исходники ===== | ===== Исходники ===== | ||
Строка 47: | Строка 144: | ||
===== Yii2 ===== | ===== Yii2 ===== | ||
+ | * https:// | ||
* https:// | * https:// | ||
Строка 77: | Строка 175: | ||
* http:// | * http:// | ||
+ | * http:// | ||
* https:// | * https:// |