все методы принимают:
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 - нет прав доступа к данному объекту
http://harlik.com/api.php?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 группы всегда отрицательное
http://harlik.com/api.php?obj=Group&m=setting_list
Получить список прав доступа, уведомлений и атрибутов устройству id к моему телефону
входные параметры:
for= attribute | my_attribute, если не задано, то возвращается информация по всем
id - группы, если пустой или не передан, возвращается полный список для создания группы и моего участия в ней
или id_gs для group_subscribe
возвращает:
HTTP_SUCCESS или HTTP_NOT_FOUND или HTTP_BAD_REQUEST
Права, недоступные для изменения данному устройству не возвращаются.
http://harlik.com/api.php?obj=Group&m=set
настройка атрибутов группы и атрибутов моего участия в группе
входные параметры:
id группы + имя константы(в любом регистре) из group->attribute = 1|0
или
id группы + имя константы(в любом регистре) из group_subscribe->my_attribute = 1|0
констант в запросе может быть несколько
возвращает:
HTTP_SUCCESS или HTTP_BAD_REQUEST если ни одна из переданных констант не изменила значение
http://harlik.com/api.php?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 - до какого времени не присылать уведомления
]
http://harlik.com/api.php?obj=Group&m=get_info
http://harlik.com/api.php?obj=Group&m=get_code
возвращает код группы, если старый истек, создает новый
я должен быть членом группы
при каждом вызове срок жизни кода продлевается на максимальный
входные параметры:
id - id группы
new=1 - необязательный, создать новый код вместо старого
http://harlik.com/api.php?obj=Group&m=get_attribute_name
возвращает список названий атрибутов группы
входные параметры:
attribute
возвращает:
item=[список названий атрибутов группы]
http://harlik.com/api.php?obj=Group&m=group_devices
возвращает информацию о членах группы, если не установлено GROUP_MEMBER_HIDDEN и я не админ группы
забаненные пользователи не показываются
входные параметры:
id - id группы
p=страница (умолчание =0)
perpage=кол-во участников на странице (умолчание =30)
todo упорядоченно по удалению от моего текущего местоположения
exclude_my=1 - исключить меня из списка
include_ban=1 - включить в список забаненных
возвращает:
items=[список устройств членов группы]
http://harlik.com/api.php?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, если мое устройство
http://harlik.com/api.php?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
http://harlik.com/api.php?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 если ограничение по возрасту или бан в группе
http://harlik.com/api.php?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=Забанен | Админ удалил все сообщения от | покинул группу
http://harlik.com/api.php?obj=Group&m=getForm
Отображение формы добавления/редактирования/вступления
входные параметры:
id - id объекта(не обязательно)
template - шаблон (КЛАСС_template), если не передан, то если id>0 возвращает КЛАСС_add, иначе КЛАСС_edit
http://harlik.com/api.php?obj=Group&m=get_can_do
возвращает список прав
входные параметры:
id - id группы
возвращает:
HTTP_SUCCESS + can_do[[title, action, icon], [..] ]
items=[mes1,mes2]