На хакатоне "47 часов" МегаФон предлагает разработчикам реализовать прототип услуги "Аудиоконференция", а также проявить свой творческий потенциал в реализации любого приложения и/или интеграции на базе МегаФон.API.
По проекту "Аудиоконференция" имеется техническое задание, которое необходимо рассматривать как основу и которое ни в коем случае не ограничивает фантазию разработчика. Разработка должна завершится прототипом, который имеет шанс превратиться в коммерческое приложение. Доработка прототипа до коммерческого уровня будет оплачена МегаФоном в рамках не большого стартового бюджета. Дальнейшее сотрудничество с командой будет определяться по результатам этой деятельности.
На любую другую креативную идею и прототип, использующие МегаФон.API, также будем внимательно смотреть: наша задача - больше приложений хороших и разных.
Для работы по любому из проектов в рамках МегаФон.API разработчику необходимо использовать мобильный номер телефона МегаФон (в стадии бета-тестирования проект функционирует только для номеров Кавказского филиала). Тарификация вызовов происходит по текущему тарифному плану. Чтобы начать кодить для МегаФон.API необходимо проделать следующие действия:
- Подписаться на группу МегаФон.API в Telegram. Там же можно задавать вопросы, общаться с коллегами, выкладывать предложения и замечания;
- Взять одну из тестовых подписок, каждой из которых соответствует токен доступа. Все на одном лицевом счёте с деньгами - если
не звонить в Антарктиду, то на эксперименты должно хватить с головой. Помните, что ваши коллеги звонят из того же лицевого счёта!
Тут были тестовые подписки
- Пара логин/пароль или токен используются для аутентификации в МегаФон.API (см. примеры). Необходимо помнить, что при написании приложения для браузера, использовать токен поверх веб-сокета не получается в силу особенностей реализации этого механизма в браузерах.
- В качестве endpoint'а используется wss://testapi.megafon.ru/v1/api (см. примеры)
- Читать спецификацию на megafonapi.github.io и кодить
- Тестовая платформа ограничена производительностью в 10 одновременных вызовов - не поспамишь всласть.
- Соединение платформы API с биллингом, очевидно необходимое для её нормальной работы, может иногда возвращать таймаут
{'error': {'code': -1, 'message': 'Initialization failed: Charging SubSystem returns [TIMEOUT]' }, 'jsonrpc': '2.0', 'id': 5648330972441984664 }
- После окончания денег на балансе от биллинга прилетит [RELC] в структуре, аналогичной приведённой выше, которой также пока не обёрнут в события от МегаФон.API. Правда, на тестовых подписках должно хватать денег;
- Оба этих случая могут обрабатываться в обычной конструкции типа try/catch на выбранном языке программирования. В catch-блоке надо будет просто
распарсить прилетающую JSON-структуру (см. JSON-RPC 2.0) и поступать
так, как диктует ваш алгоритм. Например, на Питоне с использованием того инструментария, что описан в примерах это выглядело бы как-то так:
try: response = await megafon.callMake(bnum=destination) except ProtocolError as e: print("Не могу установить связь с базовой инфраструктурой {0} {1}",\ e.args[2]['error']['code'],\ e.args[2]['error']['message'])