Push-уведомления через Telegram
Такими проблемами являются:
- Поддержка iOS
- Поддержка Windows Phone
- Получение уведомлений без установки лишних приложений
Таким образом, PushAll теперь может отправлять уведомления на устройства Android, Chrome и в на другие платформы, такие как iOS и Windows Phone через бота Telegram.
Привязываем
Нужно всего лишь открыть ссылку — telegram.me/PushAllBot и написать боту все что угодно. В ответ он даст ссылку, по которой нужно перейти для установки связи.
После перехода вам предложат авторизироваться, если вы еще не вошли в систему, либо будет выведено сообщение, что устройство привязано.
Из недостатков этого метода приема можно выделить:
- Невозможность последующей модификации уведомлений
- Невозможность отслеживания доставки (возможно временно)
- Невозможность присылать иконку к сообщению (передавать каждый раз файл с картинкой так себе вариант)
После всех этих манипуляций, у вас добавится новое устройство в кабинете:

Технические детали
Работает все достаточно просто.
- Тут есть документация по API.
- Я создал бота командой /newbot и следовал инструкциям
- Дальше задал пикчу, командой /setuserpic
- Используя полученный токен, я привязал Webhook для получения сообщений.
Тут нужно понять одну небольшую вещь: если вы работаете с PHP вы не получите данные в переменной $_POST. Данные JSON можно получить при помощи команды:
file_get_contents('php://input')
А дальше уже можно парсить JSON ответ. Отправка идет по ID чата. Оно же равно ID пользователя. Я не нашел каких-либо ограничений на использование API или кол-во отправки сообщений. Поэтому данная функция будет еще долго тестироваться. Как минимум, мне не нравится, что для каждого сообщения нужно делать отдельный запрос. Это значит, что мне либо придется делать их в несколько потоков по несколько сотен в секунду, либо делать их по очереди. А обработка каждого занимает около 50-100 мс, что достаточно долго. Если же еще там есть какие-либо ограничения, я могу столкнуться с проблемой, когда я смогу разослать 1000 уведомлений лишь за несколько минут.
Примерно так работает Webhook у меня:
$gram=json_decode(file_get_contents('php://input'),true); $message='Привет, ' .$gram['message']['chat']['last_name'].' ' .$gram['message']['chat']['first_name'].'. Твой ID в Telegram: ' .$gram['message']['chat']['id']; file_get_contents('https://api.telegram.org/botTOKEN/sendMessage?chat_id=' .$gram['message']['chat']['id'].'&text=' .urlencode($message));
Как мне кажется, можно делать неплохих ботов для «слепого» чата. Когда собеседники ничего не знают друг о друге. Через Redis сделать взаимодействие.
При приеме сообщения через Webhook отправлять сообщение другому ожидающему сообщение. После создания связи — пересылать сообщения используя разные chat_id пользователей.
API у Telegram оказалось очень простым. Никаких аккаунтов разработчика и тому подобное — не нужно. Создаешь бота сразу получаешь токен, сразу работаешь с API.
Система отправки через телеграм еще тестируется, отправляйте свой фидбек в Google+.