NAME
Skype::Any - Skype API wrapper for Perl
SYNOPSIS
use
Skype::Any;
# ping-pong bot
my
$skype
= Skype::Any->new();
$skype
->message_received(
sub
{
my
(
$msg
) =
@_
;
my
$body
=
$msg
->body;
if
(
$body
eq
'ping'
) {
$msg
->chat->send_message(
'pong'
);
}
});
$skype
->run;
STARTING
- 1. Start Skype
-
If you can use Skype API, you have to start Skype.
- 2. Allow API access
-
When you start the script using Skype::Any, "Skype API Security" dialog will open automatically. Select "Allow this application to use Skype".
- 3. Manage API access
-
You can set the name of your application.
my
$skype
= Skype::Any->new(
name
=>
'MyApp'
,
);
You can manage your application and select allow/disallow API access.
It described with Mac, but you can do the same with Linux.
DESCRIPTION
Skype::Any is Skype API wrapper. It was inspired by Skype4Py.
Note that Skype::Any is using Skype Desktop API. However, Skype Desktop API will stop working in December 2013. You can not use lastest version of Skype.
METHODS
my $skype = Skype::Any->new()
-
Create an instance of Skype::Any.
$skype->attach()
-
Attach to Skype. However, you need not call this method. When you call
$skype->run()
, it will be attach to Skype automatically.If you want to manage event loop, you have to call this method. e.g. running with Twiggy:
$skype
->attach;
my
$twiggy
= Twiggy::Server->new(
host
=>
$http_host
,
port
=>
$http_port
,
);
$twiggy
->register_service(
$app
);
$skype
->run;
$skype->run()
-
Running an event loop. You have to call this method at the end.
$skype->message_received(sub { ... })
-
$skype
->message_received(
sub
{
my
(
$chatmessage
) =
@_
;
...
});
Register 'chatmessage' handler for when a chat message is coming.
$skype->create_chat_with($username, $message)
-
Send a $message to $username.
Alias for:
$skype
->user(
$username
)->chat->send_message(
$message
);
OBJECTS
$skype->user($id)
-
Create new instance of Skype::Any::Object::User.
$skype
->user(
sub
{ ... })
Register _ (default) handler.
$skype
->user(
$name
=>
sub
{ ... }, ...)
Register $name handler.
$skype
->user(
$id
);
$skype
->user(
sub
{
});
$skype
->user(
$name
=>
sub
{
});
this code similar to:
$skype
->object(
user
=>
$id
);
$skype
->object(
user
=>
sub
{
});
$skype
->object(
user
=>
$name
=>
sub
{
});
$skype->profile
,$skype->call
, ..., these methods are the same operation. $skype->profile()
-
Note that this method takes no argument. Profile object doesn't have id.
$skype->call()
$skype->message()
-
Deprecated in Skype protocol 3. Use
Skype::Any::Object::ChatMessage
. $skype->chat()
$skype->chatmember()
$skype->chatmessage()
$skype->voicemail()
$skype->sms()
$skype->application()
$skype->group()
$skype->filetransfer()
ATTRIBUTES
$skype->api
-
Instance of Skype::Any::API. You can call Skype API directly. e.g. send "Happy new year!" to all recent chats.
my
$reply
=
$skype
->api->send_command(
'SEARCH RECENTCHATS'
)->reply;
$reply
=~ s/^CHATS\s+//;
for
my
$chatname
(
split
/,\s+/
$reply
) {
my
$chat
=
$skype
->chat(
$chatname
);
$chat
->send_message('Happy new year!");
}
$skype->handler
-
Instance of Skype::Any::Handler. You can also register a handler:
$skype
->handler->register(
$name
,
sub
{ ... });
SUPPORTS
Skype::Any working on Mac and Linux. But it doesn't support Windows. Patches welcome.
SEE ALSO
LICENSE
Copyright (C) Takumi Akiyama.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Takumi Akiyama <t.akiym@gmail.com>