Skype bots (php, Skype4com)

10.07.2009. 23:31:13 sagatavoja iinuu

Lai arī Skype sākotnēji bija paredzēts balss, video un tekstuālai komunikācijai starp diviem vai vairākiem dalībniekiem, apķērīgiem cilvēkiem ar to bija par maz. Līdz pats skype laida klajā COM moduli, caur kuru tad arī var no citas aplikācijas šo to sadarīt Skype.

Kā jau vēsta virsraksts, stāsts būs par to, kā no ārējās aplikācijas (kas šoreiz būs rakstīta iekš PHP) var veikt darbības ar Skype. Darbību klāsts ir visnotaļ iespaidīgs un apskatāms šeit. No visa šī bagātīgā klāsts izmantosim tērzētavas procedūras – ziņojuma sūtīšanu un ziņojuma saņemšanu.

 

php-Skype platforma
Attēls 1. Platforma.

Pielietojums

Tagad abstrahēsimies no tehniskām niansēm (un iespējām) un padomāsim, kur un kā šādu veidojumu varētu izmantot.

  1. Visa sarakste automātiski saglabājas web lapā (blogā, twitterī, utt.)
  2. Tikai ar speciālu komandu tiek pievienots ziņojums web lapai. Piemēram, Pievienot: Pašreiz rakstu par skype4com.
  3. URL labošana. Piemēram: dokuments.doc tiek pārlabots uz //server/user/dokuments.doc, kā rezultātā šī saite kļūs reāla un izmantojama.
  4. Mini Google. Piemēram: google: skype4com un rezultātā tie atsūtīta pirmos 3 ierakstus. Vai pagerank, vai atslēgas vardu pozīcija meklētajā, vai Alexa rank, vai da jebkas cits.
  5. Verķītis pats no sevis ik pa laikam konkrētai konferencei (piem., darbs) tiek izsūtīta īsa informācija – samaksāts rēķins Nr 123 vai šodien vārda dienas svin Jānis Bērziņš un dzimšanas dienu svin Liena Bērziņa.
  6. Vārdnīca. Rakstām, piemēram: en:lullaby atbildē saņemam – lv:šūpļa dziesma
  7. Info serviss. Piemēram: ?cik diskā vietas uz servera. Atbilde 1Gb.
  8. Čatbots. Cik nu labs sanāks... Ja prāta pietiks uztaisīt sakarīgu uz MI balstītu, varētu izrādīties lādzīgs sarunu biedrs
  9. Nu un, protams, čupa ar dažādām cita veida komandām.

Ar ko sākt?

Vispirms vajadzīgs pats Skype ar Skype tīklā reģistrētu lietotāju. Ņemot vērā, ka Skype protokols ir slēgts (t.i. nav publiski apskatāms), visas tālā aprakstītās darbības būs iespējamas, ja būs palaists skype klients (dabūnams gan priekš Windows, gan Linux, gan Mac). Ņemam vērā, ka Skype klientam ir tikai GUI versija...

Otrais. Skype4COM komponente. Principā tas ir dll fails, kuru var piereģistrēt ar regsrv32 komandu. Nesanāca. Līdz ar ko otrs variants. Instalējot izvēlamies Options (pašā pirmajā logā) un atzīmējam "Install Skype Extras Manager". Līdz ar šo, Skype4Com pieinstalēsies. Bet ar to vēl visa maģija nebeidzas.

Skype instalācija

 

Trešais. Izņemot gadījumu, kad PHP tiks darbināts komandrindā (t.i. php –f skype.php), jāsaprot viena lieta – inicializējot savienojumu caur COM objektu, tiks palaista vēl viena Skype instance (ja Skype vēl nav aktīvs) un pieprasīts ievadīt autentifikācijas datus.

Savos eksperimentos izdarīju tā:

  • Palaidu Skype un ielogojos;
  • Pie Administrative Tools > Services > Apache > Properties > Log On un liekam ķeksi pie
    Skype properties
  • Palaižam PHP un atļaujam Skype savienojumu.
    Skype savienojums

Ja PHP neparādīja kaut kādu mistisku COM kļūdu vai Skype4COM unable to attach (Wait Timeout), tad viss strādā, un tālāk jau darbošanās pa PHP!


N.B. Rakstot PHP kodu jāpatur prātā divas lietas:

  1. Jādod laiks izpildīties komandai. Piemēram, izmantojam com_message_pump(4000);
  2. Ja gribam "gaidīt" uz kādu Skype notikumu, piemēram, ienākošo ziņojumu, tad kaut kur sākumā set_time_limit(0); un beigās – bezgalīgo gaidīšanas ciklu:
while(!$sink->terminated) {
  com_message_pump(1000);
}

Mans PHP kods, kurš sūta atbildes ziņojumu uz jebkuru ienākošo ziņojumu.

Dažas labas idejas un reāls Skype bots:
www.voidstar.com/void.bot/source/skypebot.txt

Noderīgas saites:

(Raksts pārpublicēts ar autoru piekrišanu no IINUU bloga.)


2 komentāri Komentēšana pieejama visiem.
M (mad182@gmail.com) komentēja 11.07.2009. 15:31:53 (ip:78.84.143.58)
Komentāra reitings: 0

Cik saprotu, to visu var darbināt tikai uz windows kastes ar instalētu skype? Žēl, citādu būtu potenciāls.

ričards (ricard.f@inbox.lv) komentēja 08.01.2011. 20:15:41 (ip:87.110.108.186)
Komentāra reitings: 0

(finger)

Komentāra pievienošana

Ar * atzīmētie lauciņi ir jāaizpilda obligāti.





[ uz rakstu sarakstu ]

Reklāma
Par web.hc.lv

web.hc.lv ir vortāls, kurā tiek aplūkoti mājaslapu veidošanas un mārketinga aspekti, no idejas līdz gandarījumam.

[Valid RSS] Valid XHTML 1.0! Valid CSS!

RSS 2.0 ziņu barotne (news feed)  Twitter

reģistrēties