Константы:
group_message, message -> attribute
SENDER_DEL = 1 - удалено у отправителя
RECEIVER_DEL = 2 - удалено у получателя(для группы у всех) (если я отправитель, то удалить у получателя могу если оно непрочитанно или прошло меньше 30 минут)
SENDER_CHANGE = 4 - отправитель отреадактировал, обновить у получателя
PUSH = 8 - отправлен push
RECEIVER_READ = 16 - получатель прочитал (для группы не используется)
SERVICE = 32 - сервисное: добавлен/удален/забанен пользователь
MUTE = 64 - “Беззвучное” - Приходит без оповещения
ALARM = 128 - “Громкое” - Звук будет даже если беззвучный режим
WARNING = 128 - Это сообщение важное и его прочтение обязательно, например запрос прав
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 - нет прав доступа к данному объекту
https://harlik.com/api.php?obj=Message&m=send
отправить сообщение на устройство или в группу
может быть добавлено голосовое, видео или текстовое сообщение
Получатель должен: или дать право на получение или быть в общей приватной группе или у получателя отправитель в телефонной книге или отправитель официальный поставщик услуг.
входные параметры:
text - текст сообщения
id - получатель или список получателей
если id отрицательное, это чат
если id начинается с +, это номер телефона.
files или img - ссылка на ранее загруженное временное изображение или файл. м.б. массивом
reply_id - id сообщения на которое ответ
my_x,my_y - текущие координаты
attribute - MUTE/ALARM, см.message -> attribute todo отладить
возвращает:
HTTP_SUCCESS или HTTP_PERMISSION_DENIED
отправляет PUSH:
m=message, device_id, device_name, x, y, text, id, img(если есть изображение)
если это группа, то дополнительно group=id_группы, id=id_записи, group_name=заголовок, group_img=аватарки группы[big,medium,small]
todo защита от спама: при написании первого сообщения в публичный чат, оно уходит только админам, если админы не реагируют, то через 15 минут всем.
todo защита от спама: Вариант второй: карма написавшего
todo защита от спама: Вариант третий: пометка "это спам", если 3 человека сказали, что это спам, у всех удаляется и пользователь банится или полу/бан, - его сообщения будут уходить только админам
todo можно удалить приложение, установить заново и опять насрать в чат
todo без ограничений можно отправить тому, у кого я есть в контактах
https://harlik.com/api.php?obj=Message&m=ping
Проверить доступность получателей по номеру телефона
входные параметры:
phones - список номеров телефонов
возвращает:
HTTP_SUCCESS и phones=список номеров телефонов, которым можно отправить сообщение
https://harlik.com/api.php?obj=Message&m=attribute
удаляет сообщение или устанавливает признак прочтения
https://harlik.com/api.php?obj=Message&m=change
изменяет сообщение
входные параметры:
id - сообщение
text - измененный текст сообщения
возвращает:
HTTP_SUCCESS
отправляет PUSH:
m=message_change, device_id, device_name, text, id
https://harlik.com/api.php?obj=Message&m=mark_as_read
устанавливает признак прочтения
входные параметры:
id - сообщение
возвращает:
HTTP_SUCCESS
отправляет PUSH:
m=message_read, device_id, device_name, id
https://harlik.com/api.php?obj=Message&m=del
удаляет сообщение
входные параметры:
id - сообщения
receiver_del=1 - по возможности удалить у получателя
возвращает:
HTTP_SUCCESS
или
HTTP_PERMISSION_DENIED - если забанен в группе или чужое сообщение. Админ группы может удалить любое сообщение
отправляет PUSH:
m=message_del, device_id, device_name, id
https://harlik.com/api.php?obj=Message&m=dialogues
возвращает список диалогов.
todo Архивные группы и устройства не выводятся, но по ним осуществляется поиск
входные параметры:
p=страница (умолчание =0)
perpage=кол-во сообщений на странице (умолчание =30)
text - строка для поиска
возвращает:
HTTP_SUCCESS + items или HTTP_NO_CONTENT
items=[mes1,mes2]
каждое сообщение:
device|group - корреспондент[id,name,img], для группы id<0,
message - объект, см. message->list {
id - id сообщения, для группы <0,
time - создано,
device - фактически написавший последнее сообщения[id,name,img]
attribute - см. message -> attribute
text - текст сообщения
answer - id сообщения на который ответили
files=[список картинок и документов вложенных в сообщение]
info - json с доп. информацией
}
https://harlik.com/api.php?obj=Message&m=list
возвращает список сообщений
входные параметры:
id - устройство - корреспондент
если id отрицательное, это группа
warning=1 - показать все непрочитанные важные уведомления от всех
p=страница (умолчание =0)
perpage=кол-во сообщений на странице (умолчание =30)
q - строка для поиска
service=1 - показывать все сервисные сообщения, иначе сервисные только за сегодня
возвращает:
HTTP_SUCCESS + items или HTTP_NO_CONTENT
items=[mes1,mes2]
каждое сообщение:
id сообщения,
time - создано,
device - отправитель[id,name,img],
receiver - получатель[id,name,img], для группы id<0
attribute - см. message -> attribute
text - текст сообщения
files=[список картинок и документов вложенных в сообщение]
answer - id сообщения на который ответили, если <0, то это личный ответ на сообщение из чата
todo info -> [доп. информация]
TODO если на сервере нет сообщений, запрашивает их на устройстве-кореспонденте
https://harlik.com/api.php?obj=Message&m=get
возвращает одно сообщение
входные параметры:
id - сообщениия
возвращает:
HTTP_SUCCESS + item или HTTP_NO_CONTENT
item=[
id сообщения,
time - создано,
device - отправитель[id,name,img],
receiver - получатель[id,name,img], для группы id<0
attribute - см. message -> attribute
text - текст сообщения
files=[список картинок и документов вложенных в сообщение]
answer - id сообщения на который ответили, если <0, то это личный ответ на сообщение из чата
todo info -> [доп. информация]
TODO если на сервере нет сообщений, запрашивает их на устройстве-кореспонденте
]
https://harlik.com/api.php?obj=Message&m=typing
todo Я набираю текст. Необходимо отправлять при наборе текста не чаще чем раз в 5 секунд.
входные параметры:
id - устройство - корреспондент
если id отрицательное, это группа
возвращает:
HTTP_SUCCESS
отправляет PUSH:
m=message_typing, device_id, device_name
если это группа, то дополнительно group=id_группы
https://harlik.com/api.php?obj=Message&m=del_all
удаляет все сообщения лички для меня или если я админ чата, то весь чат
входные параметры:
id - id группы или id device
возвращает:
HTTP_SUCCESS
https://harlik.com/api.php?obj=Message&m=abuse
жалоба пользователя
входные параметры:
message или msg или text - текст жалобы
rating 0-99 - необязательное
from - необязательное
email - необязательное
или
todo message_id - нажали кнопку СПАМ на сообщение с id=message_id
https://harlik.com/api.php?obj=Message&m=getForm
Отображение формы добавления/редактирования/вступления
входные параметры:
id - id объекта(не обязательно)
template - шаблон (КЛАСС_template), если не передан, то если id>0 возвращает КЛАСС_add, иначе КЛАСС_edit
https://harlik.com/api.php?obj=Message&m=get_can_do
входные параметры:
id - id группы
возвращает:
HTTP_SUCCESS + can_do[[title, action, icon], [..] ]
items=[mes1,mes2]