Бот для отправки сообщений из Telegram в ВК и наоборот
Создадим бота для переправки сообщений между своими аккаунтами в Telegram и ВК. На самом деле этот бот уже существует, но в связи с выходом GCBot, переведем его на платформу для ботов. 

Мы уже писали бота для Telegram для обратной связи с сайта, и процесс создания описан в статье Бот Telegram для обратной связи с сайта. Сегодня разберем особенности бота для ВКонтакте и улучшим GCBot. Для Telegram создается по аналогии с предыдущей статьей.

Создадим в ВК группу, у нас это будет Remailbot. Включаем в настройках группы сообщения. Далее в раздел Работа с API. Кликаем создать ключ и разрешаем доступ к сообщениям. Копируем созданный токен и вставляем его в config.php в $tokenVK. Так же нам потребуется БД, заполняем $db_host, $db_user, $db_password, $db_name.

Вернемся в настройки группы, в разделе Работа с API есть вторая вкладка Callback API. 
Указываем путь до vk.php в Адрес Вашего сервера. Для подтверждения ВК отправит запрос на vk.php с данными: {"type":"confirmation","group_id":127086488}, а ниже указана строка, которую должен вернуть сервер. Копируем её и вставляем в vk.php в $confirmation_token. Так же укажем $key. В настройках на этой же вкладке есть под вкладка: типы событий, уберем все галочки и поставим только напротив: новое сообщение.

Сейчас если все правильно, то написав в сообщение группе, мы получим в ответ: Подробнее о GCBot можно найти на http://gusevcore.ru

План будет такой:
По команде /connect мы отправляем ссылку на профиль противоположной сети, сохраняем её в БД, как только с того профиля сделают аналогичную команду с ссылкой на профиль первой сети, мы создаем связь. Потом при переотправки боту сообщения, мы присылаем его в другую сеть.

Начнем с регистрации. Развиваем GCBot, делаем ему в конфиге поле before_command, эта команды будет вызываться перед основной. В неё будет отправляться название команды, которая определилась в getCommand, на основе текста. Из неё мы можем вернуть другую команду, которая в последствии вызовется.  Так же там реализуем обычную авторизацию, и регистрацию для новых пользователей. 

Пользователь есть, нужна команда связи /connect, определим её в commands.php в массиве $commands
public $commands = array(
     // Отмена
     'cancel'          => array('/cancel', 'cancel', 'отмена', '0'),
     // Помощь
     'help'            => array('/help', 'help', 'помощь', '1'),
     // Связать страницы
     'connect'         => array('/connect', 'connect', 'связь', '2')
);
Сама функция connect должна проверить если у пользователя связь. Если связь есть, то говорим, что связь установлена ранее. Если нет, то в переменную с пользователем запишет команду, которая выполнится при следующем сообщении, она должна сохранить логин, который прислал пользователь. А пользователю отправим, что бы он ввел логин от другой сети. 
$GCBot -> user['info']['next_command'] = 'setConnect';
Так же у нас есть команда /cancel, которая имеет больший приоритет над другими командами. Она стирает next_command.

Далее нам нужно запомнить все изменения, для этого нам бы не помешала функция наподобие before_command, только вызываемая после основной команды. Добавил в GCBot такую, так же указываем в конфиге after_command. В неё так же будет передаваться название основной команды.

После отправки логина, мы добавляем его во временную таблицу, а пользователю сообщаем, что бы он с другой сети отправил логин от текущей.
Как только в таблице появляются ссылающиеся друг на друга записи, образовываем связь.

Теперь пересылка, эта уже не команда. Значит указываем в конфигурации default_command = 'remail'

Сам remail, должен проверить, если связи нет, то вызвать команду help, либо переслать сообщение в другую сеть.
Так как исходные имеют разный формат, в tg.php и vk.php создадим по функции getMsg(), которая должна получить из $response пересылаемое сообщение выстроить нужный формат и вернуть обычный текст. Этот текст отправляется в другую сеть.

ВКонтакте считает команду успешной, если был ответ OK. Если ВК не получил положительный ответ, он повторит отправку этой команды позже.

По итогам переписания бота, GCBot обновился до 0.2.

Бот который мы создали, называется Remail, добавляйте его в ВК и в Telegram.