В этом посте я поделюсь опытом и проблемами, с которыми мы столкнулись при работе с платформой приложений Mamba.
Описание платформы
Платформа приложений Мамба — достаточно молодой продукт. Мы начали писать для него приложения в конце прошлого года.Подробности по финансам, конкретные примеры или цифры привести не могу, так как не имею права.
Я расскажу лишь о некоторых технических подробностях, которые, надеюсь, будут полезны в первую очередь программистам.
игры и приложения
Мамба пытается создать некую грань между приложениями и играми, хотя ситуация здесь довольно интересная.По моему, где-то до начала 2012 года игры вообще запретили как таковые.
Любое приложение должно, согласно правила размещения (если он не предназначен для ознакомления), тем или иным образом облегчает знакомство пользователей.
В пункт 4 Часто задаваемые вопросы Есть оговорка, что они не хотят делать игровой портал, но в некоторых случаях игровое приложение может быть разрешено.
Игровой раздел появился довольно резко и сразу с множеством игр.
Более того, большинство игровых приложений даже не думают знакомить пользователей.
Судя по всему, это какие-то соглашения между производителями игр и Мамбой; По-другому объяснить эти трюки я не могу.
API и взаимодействие с Мамбой
За небольшим исключением, я остался доволен тем, что было представлено.API .
Все вполне логично и понятно.
Первый запрос при входе пользователя в приложение определяется наличием в GET-параметрах соответствующие переменные .
Все их желательно сохранять в сессии, так как в дальнейшем при навигации по страницам (флеш-приложение мы не создавали) вам понадобится sid — идентификатор сессии и oid — уникальный идентификатор пользователя в Мамбе.
Без первого доступ к большинству функций API невозможен.
Попробуйте хотя бы иногда «перепрыгивать» свое приложение с помощью Ajax, чтобы сессия не истекала.
Понятно, что здесь все зависит от настроек сессий, но если вы потеряете пользователя, то «воскресить» его можно, только попросив нажать F5. После первого входа в систему sid-ключ действителен в течение четырех часов.
Но фишка в том, что в документации написано «Ключ SID действителен в течение 4 часов с момента последнего запроса к серверу!» Итак, это все неправда.
Он действителен в течение 4 часов с момента генерации.
То есть если пользователь зайдет в приложение, он сможет находиться в нем максимум 4 часа.
Тогда все вызовы API будут ругаться и вам придется просить пользователя нажать F5, так как другим способом получить новый ключ невозможно.
Будьте готовы к тому, что некоторые части API могут перестать работать совершенно независимо друг от друга.
Иногда они вылетают, и у нас были случаи, когда фотографии не отправлялись в 1 запросе из 5. Нажимаем F5, и периодически получаем пустые данные.
Как будто у человека нет фотографий.
Следующая проблема — пользователь меняет свои данные.
Чтобы не прерывать часто работу API, мы почему-то вынуждены хранить некоторую информацию (ссылку на фото, имя, возраст) дома.
Но, к сожалению, невозможно узнать, изменилось ли оно со времени последнего визита.
Советов давать не буду — для каждого приложения это индивидуально.
Но скажу лишь, что фотографии меняются довольно часто, особенно у девушек.
Очень полезно иметь флаг, указывающий, установлено ли у пользователя приложение, и периодически (желательно ночью) проверять, не удалил ли пользователь его.
Так как нет смысла отправлять таким пользователям какие-либо уведомления.
Генерация подписи описана в эта страница в принципе это работает. Но помните, что $request_params не должен содержать пустых значений.
Просто весь наш вызов API был отформатирован как класс с полями — параметрами запроса.
А для межсерверных запросов (например, консольных задач cron по отправке уведомлений) поле sig было равно NULL, как будто оно и не заполнялось, но оно реально существовало и повторялось, как и все остальные поля, при формировании подпись.
Понятно, что это наш косяк, но место ошибки я искал довольно долго.
Будьте осторожны с URL-адресами приложений.
Мы случайно оставили редирект с обычного домена на www, в связи с чем JS-API не работал, так как в настройках приложения были указаны адреса без www. Секретный URL-адрес платежа — «URL платежного процессора».
Это действительно волшебство.
Нигде в документации вы не найдете, как именно ваш скрипт должен реагировать на входящие запросы от мамбы при поступлении оплаты.
Так что знайте, что это описано в разделе Формат ответа сервера .
Да, мы говорим здесь о вашем сервере.
Кроме того, что бы ни возвращал ваш скрипт, деньги все равно будут зачислены (не уверен, что так происходит всегда, но такое было) - это плохо, потому что пользователь не увидит свои деньги в вашем приложении и будет расстройство.
Раньше в JS-API нужно было писать app_id непосредственно в теле js-скриптов, вызывающих диалоги пополнения счета.
Сейчас это не так, но до этого момента это раздражало, так как было два приложения — одно тестовое и другое боевое, и мы иногда забывали изменить эту цифру.
Еще один забавный момент, который Мамба приберегла для разработчиков: имейте в виду, что все тестовые (неопубликованные) приложения будут хорошо видны в вашем профиле.
Доска достижений также будет содержать записи из этих приложений.
Мелочь, как говорится, а неприятно.
При выполнении межсерверных запросов (то есть вне пользовательской сессии) не забудьте установить secure=1, иначе ничего не будет работать.
Отправка сообщений пользователю - просто для уточнения.
Сообщения могут отправляться как с активным сеансом, так и без него.
В первом случае сообщения можно отправлять от имени текущего пользователя только тем, кто находится в его списке контактов.
Для этого используется метод Contacts.sendMessage. Во втором случае нужно использовать notify.sendMessage .
Но есть два момента: daily_balance , который возвращает остальные сообщения, на моей памяти ни разу не менялся и скорее всего является просто константой.
Возможно, они исправят это позже.
А еще имейте в виду, что уведомления приходят не сразу и не все.
Данные профиля мамбы (если нужно сохранить полностью) лучше всего хранить в Mongo. Он просто идеален для хранения огромные вложенные массивы .
Браузеры
IE как всегда странный.В частности, сеансы могут работать не по кадрам и не всегда, а только в некоторые моменты времени.
Какая-то помощь чудесное название .
Если у вас есть тестовое приложение, которое работает в домене, таком как my-app.local, вам необходимо включить «Разрешить межсетевую навигацию» в Opera. Агрессивно настроенный адблок может блокировать и не показывать содержимое кадра, поэтому добавьте адрес страницы приложения в исключения.
Будьте готовы к проблемам с Safari на iOS и iPad. По умолчанию файлы cookie внутри фрейма не сохраняются.
На самом деле это политика конфиденциальности, и есть способ ее обойти.
Единственный выход — определить, что cookie не установлен, и перенаправить пользователя на специальную страницу, где объясняют, как изменить политику безопасности.
Этот вопрос применим только в том случае, если вам нужны сеансы в вашем приложении.
Основные пометки
Модерация проходит довольно быстро.Но в модерации может быть отказано на том основании, что заявку заполняют не реальные люди.
То есть перед модерацией мы должны заполнить не менее десяти анкет, но никто не говорит, где взять столько сим-карт. Аккаунтов разработчиков нет. Они практически отсутствуют как класс.
Не вижу сложности в создании такого типа аккаунта, который не нужно было привязывать к телефону, а можно было заходить только в определенные приложения.
Видимо мамба еще не созрела.
Но при этом в некоторых странах есть возможность регистрировать анкеты без верификации телефона.
Понятно, что в зарубежных регионах у них будут какие-то ограничения, но зная список таких стран, вы легко сможете регистрировать профили и делать разного рода читы, если ваше приложение это позволяет (бонусы за приглашение друзей, бесплатные периодические бонусы и все такое).
как это).
Будьте осторожны с этими вещами.
При необходимости можно полностью отключить от приложения пользователей, не подтвердивших свой номер телефона (флаг is_real в методе anketa.getFlags будет равен 0).
Имейте в виду, что любую техническую помощь получить очень сложно.
Во всех ошибках и непонятностях вам придется вникать самостоятельно; нет даже самого простого форума, где можно задать вопрос.
Дойти до разработчиков можно, но это очень долго и это не гарантия, что ответ вас устроит. Недавно произошел еще более интересный случай.
Полностью изменена часть анкеты и структура информации в ней.
Появился блок «Интересы».
И при всем при этом получить новые данные через API невозможно.
Их просто не существует. Ну и помните, что самое главное в начале – это количество установок.
Поэтому на первом этапе вы можете вообще забыть о заработке и увеличить количество новых пользователей.
Для этого используйте различные бонусы за друзей, приведенных в приложение.
Чтобы вас не забыли, используйте доску достижений и бонусы за добавление приложения в избранное (это легко проверить с помощью API).
Ну, записывайте все.
Создайте отдельную базу данных с признаками для разных журналов и записывайте все действия пользователей.
В будущем будет легче разобраться, что произошло и как этого можно было избежать.
УПД: Спасибо всем, кто проголосовал, но этот пост не претендует на звание руководства по разработке приложений.
Простейшее приложение можно выполнить за один вечер, внимательно прочитав документацию.
Здесь описаны подводные камни, о которых вы узнаете, только когда испытаете их непосредственно.
И я надеюсь, что этот пост поможет вам избежать этих камней.
Сообщение в соавторстве с ЗайСЛ Теги: #мамба #Разработка сайтов #php
-
«Оценка Uber В Два Раза Выше»
19 Oct, 24 -
Веревка Как В «Перережь Веревку»
19 Oct, 24 -
Нью-Йорк, «Небоскребы Пизы» =)
19 Oct, 24 -
Часто Ли Вы Голосуете В Опросах?
19 Oct, 24 -
Торрентмонитор И Еще Раз Здравствуйте
19 Oct, 24