все методы принимают: user_agent, devid, regid, сессию все методы возвращают: ['status' => self::HTTP_SUCCESS, 'message'=>инфо] или ['status' => ошибка , 'error'=>инфо] Константы: group->attribute - Изменить можно только в течение 3 часов после создания группы GROUP_PUBLIC = 1 - 1 - Публичная. Все могут видеть группу в поиске и вступать в неё 0 - Приватная. Невидима в поиске. Вступить можно зная секретный код. GROUP_ONE_WAY = 2 - Сервисная или Канал. Сообщения админа видят все, сообщения пользователей только админы. Удобно для групп тех.поддержки или групп рассылок GROUP_MEMBER_HIDDEN = 4 - Анонимная. Пользователи не видят друг-друга GROUP_FINE_GPS_ACCESS = 8 - Всем членам доступно точное местонахождение каждого члена группы, иначе только приблизительное расстояние до Вас GROUP_SOS_DISABLED = 16 - Приватная группа не принимает и не отправляет членам SOS group_subscribe->my_attribute SUBSCRIBE_SOS_SEND = 1 - все ближайшие члены группы получат мой призыв о помощи(SOS) SUBSCRIBE_SOS_RECEIVE = 2 - я получаю от ближайших членов группы призыв о помощи(SOS) SUBSCRIBE_BAN = 8 - бан в группе SUBSCRIBE_MAIN_SCREEN = 16 - показывать группу на главном экране SUBSCRIBE_ADMIN = 256 - админ группы HTTP_SUCCESS = 200 - успешно HTTP_CREATED = 201 - объект создан HTTP_NO_CONTENT = 204 - нет данных, ответ на запрос пуст HTTP_MOVED_PERMANENTLY = 301 - переадресация на указанный адрес в поле location HTTP_MOVED_TEMPORARILY = 302 - временная переадресация на указанный адрес в поле location HTTP_SEE_OTHER = 303 - HTTP_NEED_SEND_POST_TO_URL = 303 - HTTP_BAD_REQUEST = 400 - неверный запрос HTTP_UNAUTHORIZED = 401 - требуется авторизация HTTP_PAYMENT_REQUIRED = 402 - необходима оплата HTTP_FORBIDDEN = 403 - недоступно HTTP_NOT_FOUND = 404 - объект не найден HTTP_METHOD_NOT_ALLOWED = 405 - метод неподдерживается или не хватет параметров, в error описание проблемы HTTP_NOT_ENOUGH_DATA = 422 - недостаточно данных для выполнения запроса, список недостающих данных передан в поле inputs HTTP_TOO_MANY_REQUESTS = 429 - Превышен лимит запросов HTTP_PERMISSION_DENIED = 550 - нет прав доступа к данному объекту obj=Group&m=save Создать/Изменить группу При создании группы админские права будут у данного устройства Не админы могут изменить только параметры my_* (переименовывает меня в группе. Меняет мое описание и аватарку для этой группы) входные параметры(422): name - название img - аватарка description - описание attribute= см. group->attribute my_attribute=Атрибуты моего участия в группе, см. group_subscribe->my_attribute my_name - Мое имя в этой группе, my_img - моя аватарка для этой группы (ссылка на ранее загруженное временное изображение) my_description - Обо мне для этой группы, my_code - код доступа к этой группе. При его задании, группа скрывается из списка и становится доступна только после ввода кода в строке поиска. Если несколько групп будут иметь одинаковый код, они будут все доступны после указания кода shut_up age - Со скольки лет доступ в эту группу, если он Public place - место привязки группы, у семьи место "дом", а у однокласников место "школа" code - секретный код приватной группы, если не передан создается случайный Если передать id, то изменяет данные у текущей группы devices=список id добавляемых в группу устройств при создании группы. Я должен быть в адресной книге этих устройств. Может быть массивом или списком через `,` todo call_back_url - адрес обработчика с протоколом, если передать пустой, обработчик удаляется todo allowed_updates - на какие события вызывать обработчик возвращает: HTTP_SUCCESS и id созданной группы. id группы всегда отрицательное obj=Group&m=setting_list Получить список прав доступа, уведомлений и атрибутов устройству id к моему телефону входные параметры: for= attribute | my_attribute, если не задано, то возвращается информация по всем id - группы, если пустой или не передан, возвращается полный список для создания группы и моего участия в ней или id_gs для group_subscribe возвращает: HTTP_SUCCESS или HTTP_NOT_FOUND или HTTP_BAD_REQUEST Права, недоступные для изменения данному устройству не возвращаются. obj=Group&m=set настройка атрибутов группы и атрибутов моего участия в группе входные параметры: id группы + имя константы(в любом регистре) из group->attribute = 1|0 или id группы + имя константы(в любом регистре) из group_subscribe->my_attribute = 1|0 констант в запросе может быть несколько возвращает: HTTP_SUCCESS или HTTP_BAD_REQUEST если ни одна из переданных констант не изменила значение obj=Group&m=add Добавить устройство в группу или изменить атрибуты подписки В приватную группу может добавить любой существующий член группы или зная секретный код группы В общую группу может добавить только владелец устройства входные параметры(422): id - id группы или code - секретный код приватной группы, если вступление в приватную группу device - id устройства, если не передано, то себя. В группу можно пригласить не более 5 человек в сутки(даже если мой телефон есть в его адресной книге) my_attribute - атрибуты подписки на группу см. group_subscribe->my_attribute возвращает: HTTP_SUCCESS или HTTP_TOO_MANY_REQUESTS, если более 3х попыток в течение 30 минут подбора кода группы или HTTP_PERMISSION_DENIED, если неверный код или забанен в группе отправляет: PUSH m=group_service, group_id, group_name, group_img, text=К нам присоединился obj=Group&m=get возвращает информацию о группе входные параметры: id - id группы или code - секретный код приватной группы, чтобы получить информацию о закрытой группе перед вступлением в нее возвращает: item=[ id - id группы, < 0 name - название img - аватарка description - описание attribute= см. group->attribute age - Со скольки лет доступ в эту группу, если он Public place - [место привязки группы, у семьи место "дом", а у однокласников место "школа"] count - кол-во участников в группе, todo count_online - кол-во участников в группе в online, Если я подписан на эту группу, дополнительно возвращаются не пустые поля: my_name - Мое имя в этой группе my_description - Обо мне для этой группы my_attribute - см. group_subscribe->my_attribute, если подписан возвращается всегда my_shut_up - до какого времени не присылать уведомления ] obj=Group&m=get_info obj=Group&m=get_code возвращает код группы, если старый истек, создает новый я должен быть членом группы при каждом вызове срок жизни кода продлевается на максимальный входные параметры: id - id группы new=1 - необязательный, создать новый код вместо старого obj=Group&m=get_attribute_name возвращает список названий атрибутов группы входные параметры: attribute возвращает: item=[список названий атрибутов группы] obj=Group&m=group_devices возвращает информацию о членах группы, если не установлено GROUP_MEMBER_HIDDEN и я не админ группы забаненные пользователи не показываются входные параметры: id - id группы p=страница (умолчание =0) perpage=кол-во участников на странице (умолчание =30) todo упорядоченно по удалению от моего текущего местоположения exclude_my=1 - исключить меня из списка include_ban=1 - включить в список забаненных возвращает: items=[список устройств членов группы] obj=Group&m=devices_in_box возвращает информацию о членах группы, если не установлено GROUP_MEMBER_HIDDEN и я не админ группы входные параметры: id - id группы x0, y0, x1, y1 - вершины прямоугольника возвращает: items=[список устройств членов группы] каждый элемент массива: id, location{x,y}, title = dev_name + time, img, my=true, если мое устройство obj=Group&m=main список всех или закрепленных моих групп и закрепленных на главном экране устройств входные параметры: p=страница (умолчание =0) perpage=кол-во сообщений на странице (умолчание =30) all_group=1 - выводить все мои группы, иначе только закрепленные на главном экране возвращает: HTTP_SUCCESS + items todo count - кол-во участников в группе для каждой группы и устройства возвращается, если непустое: group|device={ id - > 0 - устройство, <0 - группа name - имя устройства как оно записано у меня или имя группы. Если у меня нет, то как у него, если нет, то его номер телефона, если ничего нет, то user_agent img - маленькая картинка key - id контакта в телефоне, если есть my_attribute - только для групп, см. group_subscribe->my_attribute } или HTTP_NO_CONTENT obj=Group&m=list список групп, на которые я подписан или всех публичных групп входные параметры: если ничего не передано, то возвращается список групп, на которые я подписан q=текст для поиска публичной группы, если не переданно, возвращаются все группы, на которые я подписан q=nnn - поиск по коду группы N(6) выборка ведется с учетом ограничения по возрасту упорядоченные по удалению от запросивщего q=nnn - поиск по моему секретному коду x,y - координаты относительно которых упорядочивать, если не переданны, используются последние текущие p=страница (умолчание =0) perpage=кол-во сообщений на странице (умолчание =30) devices=1 - добавить в ответ список незабаненых устройств группы (не более 30 и если не GROUP_MEMBER_HIDDEN) todo при поиске публичной группы, если нет даты рождения запрашивать через 422 возвращает: HTTP_SUCCESS + items todo count - кол-во участников в группе для каждой группы, на которую я подписан дополнительно возвращается, если непустое: my_name - Мое имя в этой группе my_description - Обо мне для этой группы my_attribute - см. group_subscribe->my_attribute, если подписан возвращается всегда my_shut_up - до какого времени не присылать уведомления my_code - мой секретный код доступа в группу если передан devices=1, то для каждой группы возвращается ассоциативный массив: id - id устройства подписанного на группу name - имя устройства как оно записано у меня. Если у меня нет, то как у него, если нет, то его номер телефона, если ничего нет, то user_agent img - маленькая картинка или HTTP_NO_CONTENT или HTTP_PERMISSION_DENIED если ограничение по возрасту или бан в группе obj=Group&m=del Отписаться от группы или удалить участника группы Имеет право админ или сам Если я единственный член группы, группа будет удалена. todo Ecли я выхожу из приватной группы удалять все права у следящих устройств, которые не были полученны прямым запросом входные параметры: id - id группы device - id устройства, если не передано, то себя если удаляет владелец группы, то можно передать доп.параметры: del_all=1 - удалить все его сообщения ban=1 - забанить. Бан вечный и помилованию не подлежит. Чтобы удалить бан, админ может удалить пользователя из группы и потом добавить возвращает: HTTP_SUCCESS или HTTP_PERMISSION_DENIED - если забанен в группе отправляет: PUSH m=group_service, group_id, group_name, group_img, text=Забанен | Админ удалил все сообщения от | покинул группу obj=Group&m=getForm Отображение формы добавления/редактирования/вступления входные параметры: id - id объекта(не обязательно) template - шаблон (КЛАСС_template), если не передан, то если id>0 возвращает КЛАСС_add, иначе КЛАСС_edit obj=Group&m=get_can_do возвращает список прав входные параметры: id - id группы возвращает: HTTP_SUCCESS + can_do[[title, action, icon], [..] ] items=[mes1,mes2]