Обмен пользовательскими сообщениями
Материал из Oktell
Версия от 06:18, 27 марта 2014; Oktell Support (обсуждение | вклад)
Методы для работы с пользовательскими сообщениями
В процессе работы системы для пользователей может быть организован внутренний сервис обмена текстовыми сообщениями. Этот режим для некоторых пользователей может быть ограничен правами доступа на отправку сообщений.
- void Messaging_SendMessage ( string xml ). Производит формирование и отправку сообщения. Пользователь (или множество пользователей), а также тело сообщения формируются на основе переданного XML-параметра. Возможна отправка одному или нескольким пользователям. Идентификатор (поле id) не обязателен для указания, в случае его отсутствия будет присвоен автоматически. В случае отправки сообщения нескольким пользователям идентификатор в любом случае будет автоматически присвоен отдельно каждому сообщению.
Формат параметра на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <property_set> <property_simple key="idmessage" value="a237bd24-cf31-3bb6-a140-b71782ec5d25" /> <property_cdata key="text"><![CDATA[Текст сообщения 12312312312]]></property_cdata> <property_simple key="userid" value="d03a522f-b399-aa37-cb2a-943cf24d113e" /> <property_simple key="userid" value="3B39F906-3C88-441D-AB9F-9C535F9FECE3" /> <property_simple key="userid" value="CBA2395A-6D0B-469F-A76F-3884D6908A75" /> </property_set> </oktellcommapper>
- void Messaging_SetViewed ( string xml ). Устанавливает для перечисленных в теле XML-параметра сообщений признак прочтения. В дальнейшем другие пользователи будут видеть статус сообщения - прочтено, время прочтения. Дополнительно при вызове метода получения всех новых сообщений эти сообщения не будут вновь передаваться.
Формат параметра на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <property_set> <property_simple key="idmessage" value="a237bd24-cf31-3bb6-a140-b71782ec5d25" /> <property_simple key="idmessage" value="DE609BC7-6D3B-4DAF-A418-A1D0648D7784" /> </property_set> </oktellcommapper>
- string Messaging_GetAllNew ( ). Возвращает все поступившие сообщения за момент отсутствия (неавторизованности) пользователя. Сообщение перестает быть новым после установки для него признака прочтения.
Формат возвращаемого значения на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <property_set> <property_simple key="datetimeformat" value="dd.MM.yyyy HH:mm:ss" /> <property_simple key="id" value="a237bd24-cf31-3bb6-a140-b71782ec5d25" /> <property_simple key="sentdate" value="27.07.2008 09:53:12" /> <property_simple key="ismymessage" value="0" /> <property_simple key="isold" value="0" /> <property_cdata key="usera" value="d03a522f-b399-aa37-cb2a-943cf24d113e"><![CDATA[Петр]]></property_cdata> <property_cdata key="userb" value="3B39F906-3C88-441D-AB9F-9C535F9FECE3"><![CDATA[Виктор]]></property_cdata> <property_simple key="wasviewed" value="1" /> <property_simple key="dtviewed" value="27.07.2008 10:05:25" /> <property_cdata key="text"><![CDATA[Как дела?:)]]></property_cdata> </property_set> </oktellcommapper>
- string Messaging_GetLastForUser ( string xml ). Возвращает установленное количество последних сообщений в переписке с указанным пользователем.
Формат параметра на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <property_set> <property_simple key="userid" value="d03a522f-b399-aa37-cb2a-943cf24d113e" /> <property_simple key="count" value="3" /> </property_set> </oktellcommapper>
Формат возвращаемого значения на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <property_set> <property_simple key="datetimeformat" value="dd.MM.yyyy HH:mm:ss" /> <property_simple key="id" value="5F9D8A37-E65D-48AF-8BA6-F9191A8C1B2E" /> <property_simple key="sentdate" value="12.08.2008 15:34:00" /> <property_simple key="ismymessage" value="1" /> <property_simple key="isold" value="1" /> <property_cdata key="usera" value="d03a522f-b399-aa37-cb2a-943cf24d113e"><![CDATA[Петр]]></property_cdata> <property_cdata key="userb" value="3B39F906-3C88-441D-AB9F-9C535F9FECE3"><![CDATA[Виктор]]></property_cdata> <property_simple key="wasviewed" value="0" /> <property_cdata key="text"><![CDATA[Проверка связи....)]]></property_cdata> </property_set> <property_set> <property_simple key="datetimeformat" value="dd.MM.yyyy HH:mm:ss" /> <property_simple key="id" value="17611695-FC39-4B5C-A87D-999981D3A1FA" /> <property_simple key="sentdate" value="26.07.2008 16:29:28" /> <property_simple key="ismymessage" value="0" /> <property_simple key="isold" value="1" /> <property_cdata key="usera" value="3B39F906-3C88-441D-AB9F-9C535F9FECE3"><![CDATA[Виктор]]></property_cdata> <property_cdata key="userb" value="d03a522f-b399-aa37-cb2a-943cf24d113e"><![CDATA[Петр]]></property_cdata> <property_simple key="wasviewed" value="1" /> <property_simple key="dtviewed" value="26.07.2008 16:29:28" /> <property_cdata key="text"><![CDATA[Ок, счас]]></property_cdata> </property_set> <property_set> <property_simple key="datetimeformat" value="dd.MM.yyyy HH:mm:ss" /> <property_simple key="id" value="73F38DE3-4883-4307-869E-9DD8BB518940" /> <property_simple key="sentdate" value="26.07.2008 16:29:01" /> <property_simple key="ismymessage" value="1" /> <property_simple key="isold" value="1" /> <property_cdata key="usera" value="d03a522f-b399-aa37-cb2a-943cf24d113e"><![CDATA[Петр]]></property_cdata> <property_cdata key="userb" value="3B39F906-3C88-441D-AB9F-9C535F9FECE3"><![CDATA[Виктор]]></property_cdata> <property_simple key="wasviewed" value="1" /> <property_simple key="dtviewed" value="26.07.2008 16:29:19" /> <property_cdata key="text"><![CDATA[Витька, зайдешь на минутку?]]></property_cdata> </property_set> </oktellcommapper>
- string Messaging_GetHistory ( string xml ). Возвращает все сообщения, удовлетворяющие фильтру в переданном XML-параметре. Поля datetimeformat, dtstart, dtstop, searchpattern могут быть неуказаны.
Формат параметра на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <property_set> <property_simple key="datetimeformat" value="dd.MM.yyyy HH:mm:ss" /> <property_simple key="userid" value="d03a522f-b399-aa37-cb2a-943cf24d113e" /> <property_simple key="dtstart" value="01.01.2008 00:00:00" /> <property_simple key="dtstop" value="31.12.2008 23:59:59" /> <property_cdata key="searchpattern"><![CDATA[строка для поиска по тексту сообщений]]></property_cdata> </property_set> </oktellcommapper>
Формат возвращаемого значения аналогичен формату возврата метода Messaging_GetLastForUser.
- event UserMessage (114). Событие канала OnCommunicate. Поступление сообщения от другого пользователя системы через внутренний мессенджер.
Пример:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <event id="112" name="usermessage"> <property_simple key="guid" value="37ccb224-ff71-3836-c410-a73782ef8d19" /> <property_simple key="datetime" value="12.07.2008 20:29:11" /> <property_simple key="senderid" value="d03a522f-b399-aa37-cb2a-943cf24d113e" /> <property_cdata key="sendername"><![CDATA[Бочкарев Евгений]]></property_cdata> <property_cdata key="text"><![CDATA[Зайди плиз как освободишься..]]></property_cdata> </event> </oktellcommapper>