Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
php:telegram [2015/11/02 21:17] – [PHP] mirocowphp:telegram [2015/11/14 15:22] (текущий) – [Запуск бота] mirocow
Строка 1: Строка 1:
-{{tag>extension yii2}}+{{tag>extension yii2 php}}
  
 ====== Telegram BOT API (Yii2) ====== ====== Telegram BOT API (Yii2) ======
 +
 +===== Создание / Регистрация бота =====
 +
 +{{:php:6706123de88f497cbc76e72eec5d84f6.png?300|}}
 +
 +<code>
 +@BotFather
 +</code>
 +===== Описание реализации на mirocow/yii2-telegram-api =====
 +
 +Пример реализации на **[[https://github.com/Mirocow/yii2-telegram-api|mirocow/yii2-telegram-api]]**
 +
 +==== Настройка ====
 +
 +<code php>
 +'modules' => [
 +            'telegram' => [
 +                    'class' => 'mirocow\telegram\Module',
 +                    'token' => 'api-telegram-token',
 +                    'unknownCommand' => 'mirocow\telegram\commands\UnknownCommand',
 +                    'defaultMessage' => 'mirocow\telegram\commands\DefaultMessage',
 +                    'options' => [],
 +                    'commands' => [
 +                        'help' => 'app\commands\HelpCommand',
 +                    ],
 +            ],
 +], 
 +</code>
 +
 +==== Запуск бота ====
 +
 +<code sh>
 +$ php ./yii mirocow\telegram\bot
 +</code>
 +
 +Бот имеет возможность поддержки опций запуска **options**
 +
 +=== Создание команд бота ===
 +
 +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
 +
 +        Help coomand
 +
 +HELP;
 +
 +    }
 +
 +}
 +</code>
 +==== Отправка сообщений ====
 +
 +<code php>
 +</code>
 +===== Описание реализации на akalongman/php-telegram-bot =====
 +
 +Пример реализации на **[[https://github.com/akalongman/php-telegram-bot|akalongman/php-telegram-bot]]**
 +
 +==== Webhook ====
 +
 +Простой пример приветствия завязанного на [[https://core.telegram.org/bots/api#setwebhook|Webhook]], реализованного на [[yii2:start|Yii2]] с помощью. Обязательное наличиче **SSL**. И хук должен отправляться на **https:**
 +
 +<code php>
 +class APIController {
 +  
 +  public $API_KEY = 'your_bot_api_key';
 +  public $BOT_NAME = 'namebot';
 +  public $API_CERTIFICATE = '';
 +  
 +  public function init(){
 +
 +    try {
 +        $telegram = new Longman\TelegramBot\Telegram($this->API_KEY, $this->BOT_NAME);
 +
 +        echo $telegram->setWebHook('https://yourdomain/api/init', $this->API_CERTIFICATE);
 +    } catch (Longman\TelegramBot\Exception\TelegramException $e) {
 +        echo $e->getMessage();
 +    }    
 +    
 +  }
 +  
 +  public function actionInit(){
 +
 +    try {
 +        $telegram = new Longman\TelegramBot\Telegram($this->API_KEY, $this->BOT_NAME);
 + $telegram->addCommandsPath(Yii::getAlias('@app\commands'));
 +        $telegram->handle();
 +    } catch (Longman\TelegramBot\Exception\TelegramException $e) {
 +        // echo $e->getMessage();
 +    }    
 +    
 +  }  
 +  
 +}  
 +</code>
 +
 +=== SSL for WebHook ===
 +
 +  * http://www.startssl.com/ (free for noncommerce)
 +  * https://buy.wosign.com/free/?lan=en
 +
 +==== getUpdates ====
 +
 +Другой метод не требует наличия SSL - это [[https://core.telegram.org/bots/api#getupdates|getUpdates]]
 +
 +<code php>
 +class APIController {
 +  
 +  public $API_KEY = 'your_bot_api_key';
 +  public $BOT_NAME = 'namebot';
 +  public $COMMANDS_FOLDER = 'app/commands';
 +  
 +  public function init(){
 +
 +    try {
 +        $telegram = new Longman\TelegramBot\Telegram($this->API_KEY, $this->BOT_NAME);
 + $telegram->enableMySQL($credentials);
 +      $telegram->addCommandsPath($this->COMMANDS_FOLDER);
 +        $telegram->handleGetUpdates();
 +    } catch (Longman\TelegramBot\Exception\TelegramException $e) {
 +        echo $e->getMessage();
 +    }    
 +    
 +  }  
 +  
 +}  
 +</code>
  
 ===== Исходники ===== ===== Исходники =====
Строка 7: Строка 144:
 ===== Yii2 ===== ===== Yii2 =====
  
 +  * https://github.com/Mirocow/yii2-telegram-api :!:
   * https://github.com/SonkoDmitry/yii2-telegram-bot-api   * https://github.com/SonkoDmitry/yii2-telegram-bot-api
  
 ==== PHP ==== ==== PHP ====
  
 +  * https://github.com/TelegramBot/Api :!:
 +  * https://github.com/akalongman/php-telegram-bot :!:
   * https://github.com/Ardakilic/Telegram-bot-php   * https://github.com/Ardakilic/Telegram-bot-php
   * https://github.com/Surzhikov/TelegramSiteHelper   * https://github.com/Surzhikov/TelegramSiteHelper
-  * https://github.com/TelegramBot/Api 
-  * https://github.com/akalongman/php-telegram-bot 
   * https://github.com/zelenin/telegram-bot-api   * https://github.com/zelenin/telegram-bot-api
   * https://github.com/mgp25/Telegram-Bot-API   * https://github.com/mgp25/Telegram-Bot-API
   * https://github.com/NeonXP/TelegramApi   * https://github.com/NeonXP/TelegramApi
   * https://github.com/pathetic/tgbot-php   * https://github.com/pathetic/tgbot-php
 +  * https://github.com/paranoiasystem/TelegramBot-PHP-library
 +  * https://github.com/matriphe/telegrambot
 +  * https://github.com/smoqadam/php-telegram-bot
 +  * https://github.com/Surzhikov/TelegramSiteHelper
 +  * https://github.com/irazasyed/telegram-bot-sdk
 +
 +==== Examples / Примеры ====
 +
 +  * https://core.telegram.org/bots/samples/hellobot
 +  * https://github.com/kolar/telegram-poll-bot (Longpoll)
 +
 +==== API ====
 +
 +  * https://core.telegram.org/bots/api
  
 ===== Статьи ===== ===== Статьи =====
  
   * http://habrahabr.ru/post/264035/   * http://habrahabr.ru/post/264035/
 +  * http://olegorestov.ru/this/bitrix_php_telegram_bot/
 +  * https://github.com/Surzhikov/TelegramSiteHelper/wiki/%D0%9A%D0%90%D0%9A-%D0%A3%D0%A1%D0%A2%D0%90%D0%9D%D0%9E%D0%92%D0%98%D0%A2%D0%AC