Отправить приватное сообщение от имени одного пользователя — другому.
function mSendPrivateMessage(iUINFrom, iUINTo: integer; sMsg: string; iMsgType: integer; bSaveToHistory: boolean): integer;
Параметр |
Тип |
Значение |
---|---|---|
iUINFrom |
integer |
идентификатор отправителя. Можно использовать встроенного робота (UIN 0) или любого другого зарегистрированного на сервере пользователя; |
iUINTo |
integer |
идентификатор получателя сообщения (UIN); |
sMsg |
string |
текст сообщения. Можно использовать переносы строк (CRLF); |
iMsgType |
integer |
|
bSaveToHistory |
boolean |
сохранять сообщение в истории сообщений или нет. Если = false, то сообщение нигде не будет зафиксировано, ни в истории сообщений клиентов, ни на сервере. |
Результат |
Значение |
---|---|
0 |
всё Ок, сообщение успешно отправлено; |
-1 |
UIN отправителя не существует; |
-2 |
UIN получателя не существует; |
-3 |
сообщение успешно отправлено в офлайн, получатель не подключен к серверу; |
-5 |
сообщение не может быть пустым. |
Функция "повешена" на обработчик OnPrivateRequest. При попытке открытия приватного разговора скрипт определяет, что пользователь пришёл с сайта, из чата WEB-поддержки.
Если это так — скрипт отправляет приватное сообщение с информацией, с какого IP адреса пришёл этот человек, а также User Agent браузера, язык локали, операционную систему и реферальную страницу, с которой был переход.
Код скрипта реально используется в чате поддержки компании Network Software Solutions.
function OnPrivateRequest(iCID, iUIN, iUINTo, iRole, iRoleReciever, iTask: integer): boolean;
var
s,
sIP, // IP адрес пользователя WEB-поддержки
sWEBSupportBrowserInfo, // информация о веб-браузере
sWEBSupportRefLink, // рефлинк
sWEBSupportsSysLanguage, // язык локали браузера
sWEBSupportsPlatformOS: string; // операционная система юзера
iCIDTo: integer;
begin
if mGetRoleNameByID(iRole) = 'WEB guests' then begin
sIP := mGetUserAttribute(iUIN, 'IP_Address');
sWEBSupportBrowserInfo := mGetUserAttribute(iUIN, 'WEBSupportBrowserInfo');
sWEBSupportRefLink := mGetUserAttribute(iUIN, 'WEBSupportRefLink');
sWEBSupportsSysLanguage := mGetUserAttribute(iUIN, 'WEBSupportSysLanguage');
sWEBSupportsPlatformOS := mGetUserAttribute(iUIN, 'WEBSupportPlatformOS');
s := '---------------' + CRLF +
'-=WEB Support=-' + CRLF + CRLF +
'IP: ' + sIP;
if length(sWEBSupportBrowserInfo) > 0 then s := s + CRLF + 'Browser: ' + sWEBSupportBrowserInfo + CRLF;
if length(sWEBSupportRefLink) > 0 then s := s + CRLF + 'Reflink: ' + sWEBSupportRefLink;
if length(sWEBSupportsSysLanguage) > 0 then s := s + CRLF + 'System language: ' + sWEBSupportsSysLanguage;
if length(sWEBSupportsPlatformOS) > 0 then s := s + CRLF + 'OS: ' + sWEBSupportsPlatformOS;
mSendPrivateMessage(iUIN, iUINTo, s, 21, true);
iCIDTo := mGetUserCID(iUINTo);
mSendCustomMsgToClientConsoleByCID(iCIDTo, 'WEB support session from UIN ' + inttostr(iUIN), 'newmsg', false, true, 78);
end;
result := true;
end;
begin
end.