From Stealth Client

Jump to: navigation, search

Работа с Skype

Описание

В Stealth Client версии 7.1 добавлена поддержка Skype. Возможности:

  • Отправка личных сообщений
  • Заход в групповой чат(thread), отправка текста в чат.
  • Получение сообщений из чата\напрямую.

Не забывайте, что скайп поддерживает мультилогин - под одним и тем же логином можно одновременно зайти с нескольких программ\устройств.

Event для всех скайповых событий один - SkypeEventsHandler

 procedure SkypeEventsHandler(SenderId, ReceiverId, EventMsg: String; EventCode : Byte);

Работа со скайпом идет через переменную SkypeApi - указатель на класс TSkypeApi. Методы и свойства класса описаны ниже. Создавать или освобождать этот класс НЕ НУЖНО!

Образец скрипта:

 program test;
 
 procedure SkypeEventsHandler(SenderId, ReceiverId, EventMsg: String; EventCode : Byte);
 begin                             
   case EventCode of
     evCode_Connected    : AddToJournal('Skype Connected!');
     evCode_ServerDisconnected : AddToJournal('Skype Disconnected, try to reconnect!');
     evCode_ClientDisconnected : AddToJournal('Skype Disconnected.');
     evCode_MsgReceived  : AddToJournal('SkypeMsg : "' +  SkypeApi.GetNicknameById(SenderId) + '(' 
                                 + SenderId + ') ==> '
                                 +SkypeApi.GetNicknameById(ReceiverId) + '('
                                 + ReceiverId + ') : "' + EventMsg + '"');
     evCode_Error :        AddToJournal('SkypeError : "' + EventMsg + '"');
   end;  
 end; 
 
 begin  
   SetEventProc(evSkypeEvent, 'SkypeEventsHandler');
   SkypeApi.Connect('Vizit0r','some_password');
   while not SkypeApi.Connected do
     wait(200);
   SkypeApi.SendMessage('test1','some_skype_id(login)');   
   wait(1000);
   SkypeApi.SendMessage('test4444',SkypeApi.GetIdByNickname('BEST 123'));  //отправка в групповой чат
   wait(1000);
   AddToJournal(SkypeApi.GetIdByNickname('some_skype_NickName'));
   SkypeApi.SendMessage('test2',SkypeApi.GetIdByNickname('some_skype_NickName'));
   wait(1000);
   if SkypeApi.Connected then
     SkypeApi.Disconnect; 
 
   while True do 
     Wait(500);
 
 end.


Описание методов и свойств класса TSkypeApi

  • TSkypeApi.Connect(login, password : String);
  • TSkypeApi.Disconnect;
  • SkypeApi.Connected:Boolean;
  • TSkypeApi.SendMessage(Msg : String; UserID : String);
  • TSkypeApi.GetNicknameById(ID : String): String;
  • TSkypeApi.GetIdByNickname(Nickname : String) : String;

TSkypeApi.Connect

procedure TSkypeApi.Connect(login, password : String);

Подключение к серверу, логин-пароль в параметрах.


TSkypeApi.Disconnect

procedure TSkypeApi.Disconnect;

Отключение от сервера.


TSkypeApi.Connected:Boolean

function TSkypeApi.Connected:Boolean;

Проверить статус подключения к серверу. True - подключен, False - нет.


TSkypeApi.SendMessage

procedure TSkypeApi.SendMessage(Msg : String; UserID : String);

Отправить сообщение пользователю либо в групповой чат(thread). В UserID указывается логин пользователя либо ID груп. чата.


TSkypeApi.GetNicknameById

function TSkypeApi.GetNicknameById(ID : String): String;

получить никнейм пользователя\название группового чата(thread) по его ID. В ID указывается логин пользователя либо ID груп. чата.


TSkypeApi.GetIdByNickname

function TSkypeApi.GetIdByNickname(Nickname : String) : String;

получить ID пользователя\группового чата(thread) по его никнейму\названию. В Nickname указывается ник пользователя либо название груп. чата.


Работа с Skype из внешних скриптов

Delphi wrapper

Такой же класс, как описано выше, доступен по Script.Skype.

Python wrapper

Класс отсутствует, есть только набор методов

 def Skype_Connected():
 def Skype_Connect(login, password):
 def Skype_Disconnect():
 def Skype_SendMessage(msg, user_id):
 def Skype_GetNicknameByID(user_id):
 def Skype_GetIDByNickname(user_name):