From Stealth Client

Jump to: navigation, search

Мессенджеры

Работа с мессенджерами в стелсе построена на использовании ботов.

На текущий момент реализована поддержка Telegram и Viber.

Skype из-за технических ньюансов не получится встроить.

Discord - возможно будет встроен.

Во встроенных скриптах (PS и PAX) есть класс TMessenger

  TMessenger = class
  public
    procedure SendMessage(Msg, UserID : String); virtual;
    property MessengerName: string read GetMessengerName;
    property Connected : Boolean read fConnected write SetConnected default False;
    property Token : String read GetToken write SetToken;
  end;

и 2 переменных

  ViberMessenger : TMessenger;
  TelegramMessenger : TMessenger;

Эти 2 переменных и их свойства видны при отладке.


Перед подключением необходимо указать токен.


Большой пример работы с мессенджерами:

Program New;
 
procedure MessengerEventHandler(Sender : TMessenger; SenderNickName : String; SenderId, ChatId : String; EventMsg : String; EventCode : Byte);
begin
  case EventCode of
    0 : AddToSystemJournal(Sender.MessengerName + ' Connected');
    1 : AddToSystemJournal(Sender.MessengerName + ' Disconnected');
    2 : begin
          AddToSystemJournal(Sender.MessengerName + ' Message incoming from "' + SenderNickName + '" (SenderId: ' + SenderId + ') : ' + EventMsg);
          Sender.SendMessage('response from Stealth : ' + EventMsg,SenderId)           
        end;
    3 : AddToSystemJournal(Sender.MessengerName + ' Error raised : ' + EventMsg);
  end;
end;
 
Begin
  SetEventProc(evMessengerEvent,'MessengerEventHandler');
 
 if not ViberMessenger.Connected then
  begin
    ViberMessenger.Token := 'your_token_here';
    ViberMessenger.Connected := True;
  end;
 
  ViberMessenger.SendMessage('hello from Stealth ViberBot!','receiver_id_here');
 
 
  if not TelegramMessenger.Connected then
  begin
    TelegramMessenger.Token := 'your_token_here';
    TelegramMessenger.Connected := True;
  end;
 
  TelegramMessenger.SendMessage('hello from Stealth TelegramBot!','receiver_id_here');
 
  While True do
  begin
    wait(200);
  end;
 
end.

ID юзера-получателя для отправки сообщений можно получить, просто отправив им что-то нашему боту, когда он подключен через стелс этим скриптом. Тогда в сисжурнале будет выдано 17:27:37:759 [Test - Test]: Telegram Message incoming from "Vizit0r" (SenderId: 435486649) : testtest где 435486649 и есть нужный ID. (id ненастоящий, дан для примера).