Skype API. Библиотека Skype4COM

4 минуты на чтение

Здравствуйте, уже давно экспериментирую с разными API, крупных программ, приложений, сервисов, которые предоставляют возможность использовать свои данные через API. Уже я немного рассказывал в блоге про API одного из популярных менеджеров закачек — DownloadMaster (DM), рассказывал про API одной из самой крупной российской социальной сети — Vkontakte API, ну вот и настал момент поговорить еще об одном из популярных приложений — это Skype, который вроде бы как написан на Delphi. Разработчики нам также предоставляют использовать API и писать свои приложения под Skype. При написании приложений я столкнулся с массой неудобств, ну не с массой, я только с данной библиотекой сам начал разбираться, но пару неудобств скажу. Во-первых для того, чтобы использовать данные Skype (своего аккаунта) он естественно должен быть запущен, Vkontakte API такого нету, все можно авторитизироваться через программный интерфейс и работать с данными, но в Skype такого к сожалению нету. Во-вторых, при работе с данными Skype все время необходимо давать доступ в Skype для Вашего приложения.

То есть в главном окне Skype появляется всплывающее сообщение о том, что такое-то приложение хочет получить доступ к данным, Skype запрашивает разрешение на доступ к данным Вашего приложения и Вы выбираете да или нет. С одной стороны, эти все действие оправданы, то есть очень хорошая безопасность и за все отвечает только сам пользователь (за потерю данных, например).

Данная статья является вводной, мы сделаем небольшой обзор данной библиотеки. Во-первых мы рассмотрим где взять вообще эту библиотеку и как ее установить, а во-вторых рассмотрим как, например узнать версию Skype или Ваше имя в Skype, то есть все примитивно.

Ну что, давайте начнем с установки Skype. Если у Вас уже установлено само приложение Skype, то качать дополнительных библиотек Вам уже не нужно. Запустим Delphi и выполним команду Component-Import ActiveX Control... Далее в списке ищем библиотеку Skype4Com, которая записана в списке как Skype4Com 1.0 Type Library (Version 1.0)

Ну а дальше нажимаем на кнопку «Install» и устанавливаем как обычный компонент. После этого на вкладке ActiveX не должно появиться никакого компонента, но необходимо в Uses подключить модуль SKYPE4COMLib_TLB. Далее мы в этой статье определим версию, установленного Skype, а также узнаем свой собственный ник и наше нахождение, то есть, другими словами страну, которую Вы указывали при регистрации. Кстати, вот только, что еще один минус заметил, что когда Ваше приложение у Skype запрашивает разрешение на получение данных, то в это время Ваше приложение зависает до того момента как Вы не разрешите или не запретите доступ для Вашего приложения. Кстати, если Вы запретите доступ для Вашего приложения, то просто-напросто будет ошибка, так что не забывайте ее отслеживать.

На форме у меня следующие компоненты

  • TButton
  • TListView

TListView - в нем мы будем отображать результат сразу с заголовками. В свойстве ViewStyle компонента TListView я установил в vsReport. После этого нажал по двойным щелчком мыши по компоненту TListView и создал 2 колонки Name и Result.

После чего на событие OnClick кнопки написал следующий код

procedure TForm1.Button1Click(Sender: TObject);
var
 Skype:TSkype;
 i:integer;
begin
   try
    ActiveX.CoInitialize(nil);
    Skype:=SKYPE4COMLib_TLB.TSkype.Create(nil);
    Skype.Attach(6,True);
    ListView1.Items.Add.Caption:='Version';
    ListView1.Items.Item[0].SubItems.Add(Skype.Version);
    ListView1.Items.Add.Caption:='Name';
    ListView1.Items.Item[1].SubItems.Add(Skype.CurrentUserHandle);
    ListView1.Items.Add.Caption:='Location';
    ListView1.Items.Item[2].SubItems.Add(Skype.PredictiveDialerCountry);
    FreeAndNil(Skype);
   except
    on e:Exception do
     ShowMessage(e.Message);
   end;
end;

Первой строчкой мы инициализируем COM библиотеку на всякий случай, хоть и в данном случае необязательно. С помощью Skype.Attach(6,True) мы подключаемся к нашему API, ну а дальше используем обычные свойства и функции нашей библиотеки (версия, ник, местонахождение). Дальше будем рассматривать как отправлять сообщения, искать пользователей, а также получать список контактов.

Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Здравствуйте, давайте вернемся к Skype API. А рассмотрим мы в этой статье то, как можно из стороннего приложения управлять приложением Skype и производить какие-то настройки. Мы уже рассмотрели как можно получать список ников, отправлять им сообщения, смотреть...
Всем здравствуйте. Данная статья, будет рассказывать о том, как можно в Skype разрешить доступ программам к Skype и постоянно не отвечать на всплывающие окна Skype. Скажу сразу, что вся ответственность за добавления в список безопасных программ лежит на Вас, п...
Всем здравствуйте, не так давно, мне на email поступил вопрос о том: как работать со Skype4COM в новых версиях Skype (при запуске приложения, которое обращается к Skype API , появляется ошибка — Класс не зарегистрирован). До этого я проблем не замечал, так как...