Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
php:telegram [2015/11/10 09:21] – [Описание] 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' |
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | ], | ||
+ | ], | ||
</ | </ | ||
- | Отправка сообщений или | + | ==== Запуск бота ==== |
+ | |||
+ | <code sh> | ||
+ | $ php ./yii mirocow\telegram\bot | ||
+ | </ | ||
+ | |||
+ | Бот имеет возможность поддержки | ||
+ | |||
+ | === Создание команд бота === | ||
- | Простой пример приветствия завязанного на [[https:// | + | nano app\commands\HelpCommand |
+ | |||
+ | <code php> | ||
+ | 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> | <code php> | ||
Строка 26: | Строка 78: | ||
| | ||
public $API_KEY = ' | public $API_KEY = ' | ||
- | public $BOT_NAME = ' | + | public $BOT_NAME = ' |
+ | public $API_CERTIFICATE = ''; | ||
| | ||
public function init(){ | public function init(){ | ||
Строка 33: | Строка 86: | ||
$telegram = new Longman\TelegramBot\Telegram($this-> | $telegram = new Longman\TelegramBot\Telegram($this-> | ||
- | echo $telegram-> | + | echo $telegram-> |
} catch (Longman\TelegramBot\Exception\TelegramException $e) { | } catch (Longman\TelegramBot\Exception\TelegramException $e) { | ||
echo $e-> | echo $e-> | ||
Строка 51: | Строка 104: | ||
| | ||
} | } | ||
+ | | ||
+ | } | ||
+ | </ | ||
- | public function actionHello(){ | + | === SSL for WebHook === |
- | + | ||
- | $gram=json_decode(file_get_contents(' | + | |
- | $message=' | + | * http://www.startssl.com/ (free for noncommerce) |
- | | + | * https://buy.wosign.com/ |
- | .$gram[' | + | |
- | .$gram[' | + | |
- | file_get_contents(' | + | ==== getUpdates ==== |
- | .$gram[' | + | |
- | .urlencode($message)) | + | |
- | | + | Другой метод не требует наличия 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-> | ||
+ | | ||
+ | echo $e-> | ||
+ | } | ||
+ | |||
+ | } | ||
+ | | ||
} | } | ||
</ | </ | ||
- | ===== SSL for WebHook ===== | ||
- | |||
- | * http:// | ||
- | * https:// | ||
===== Исходники ===== | ===== Исходники ===== | ||
Строка 77: | Строка 144: | ||
===== Yii2 ===== | ===== Yii2 ===== | ||
+ | * https:// | ||
* https:// | * https:// | ||