7 февраля 2010 г.

Apache + Skype4COM (Skype4Py)

У всем известной, замечательной программы Skype есть ещё более замечательный API — Skype4COM и его вариант для Python (для Java тоже есть).

skype logo логотип скайп

Это всё очень здорово! Можно создавать свои приложения, которые будут использовать Skype в различных целях. Например, можно написать программу (скрипт, например CGI) и использовать её совместно с веб-сервером, для того, чтобы пользователи Вашего сайта, или Вы сами, могли общаться при помощи по Skype через веб-интерфейс. Или наоборот, управлять работой веб-сервера через Skype.

Удобно, не так ли? При отсутствии под рукой Интернета можно, например, позвонить на номер SkypeIn и получить, либо передать необходимую информацию (послать e-mail по факсу, например... удивительно, действительно). Возможностей, на самом деле масса! И не обязательно использовать веб-сервер.

А статья о конкретном случае.



В ОС Windows веб-сервер Apache может выполняться как служба. В этом случае, если Вы попытаетесь подключиться к Skype (используя Skype4COM) через скрипт запускаемый самим Apache, будь то CGI-скрипт или, например, PHP-скрипт, то могут возникать ошибки, такие как:
SkypeAPIError('Skype attach timeout')
или
Source: Skype4COM.Skype.1
Description: Not attached.

Эти ошибки означают, что программа, использующая Skype4COM или Skype4Py не может получить доступ к окну Skype.

Решается проблема легко (если Вы знаете как её решить ;). Для того, чтобы служба Windows (тот же httpd) могла получить доступ к другой программе через дескриптор её окна, достаточно поставить галочку «Разрешить взаимодействие с рабочим столом» в свойствах службы:

1. Панель управления \ Администрирование \ Службы;
2. Выбираем Apache, из контекстного меню открываем «Свойства» (можно два раза щёлкнуть);
3. На вкладке «Вход в систему» активируем пункт «Разрешить взаимодействие с рабочим столом».

Ошибки пропадут, а Skype спросит Вас, можно ли программе такой-то использовать Skype.

Если Вам необходима работа с двумя учетными записями Skype сразу, то используйте ключ «/secondary» для запуска второго экземпляра Skype, например, напишите «C:\Program Files\Skype\Phone\Skype.exe /secondary».

Технология многообещающая, как и сам Skype.

0 коммент.:

Отправить комментарий