NAME
Net::RocketChat
SYNOPSIS
Implements the REST API for Rocket.Chat
USAGE
You can also specify the username, password and server in the environment variables ROCKETCHAT_USERNAME, ROCKETCHAT_PASSWORD and ROCKETCHAT_SERVER.
Most errors die. Use eval generously.
use
Net::RocketChat;
use
YAML::XS;
use
strict;
# specifying connection info directly
my
$chat
= Net::RocketChat->new(
username
=>
$username
,
password
=>
$password
,
server
=>
'https://your.server.here'
);
# or use the environment
$ENV
{ROCKETCHAT_USERNAME} =
$username
;
$ENV
{ROCKETCHAT_PASSWORD} =
$password
;
$ENV
{ROCKETCHAT_SERVER} =
$server
;
my
$chat
= Net::RocketChat->new;
eval
{
$chat
->login;
$chat
->
join
(
room
=>
"general"
);
my
$messages
=
$chat
->messages(
room
=>
"general"
);
Dump(
$messages
);
$chat
->
send
(
room
=>
"general"
,
message
=>
"your message goes here"
);
$chat
->
send
(
room
=>
"general"
,
message
=>
"```\nmulti-line\npastes\nare\nok```"
);
$chat
->leave(
room
=>
"general"
);
};
if
($@) {
"caught an error: $@\n"
;
}
There are also example scripts in the distribution.
ATTRIBUTES
- debug
-
If debug is set, lots of stuff will get dumped to STDERR.
- username
-
If this isn't specified, defaults to $ENV{ROCKETCHAT_USERNAME}
- password
-
If this isn't specified, defaults to $ENV{ROCKETCHAT_PASSWORD}
- server
-
The URL for the server, ie. "https://rocketchat.your.domain.here"
If this isn't specified, defaults to $ENV{ROCKETCHAT_SERVER}
- response
-
Contains the last HTTP response from the server.
METHODS
- version
-
Returns a hashref of versions, currently of the API and server.
"versions"
: {
"api"
:
"0.1"
,
"rocketchat"
:
"0.5"
}
- login
-
Logs in.
- logout
-
Logs out.
- publicRooms
-
Fetches a list of rooms, and also stores a mapping of names to ids for future use. Returns the raw decoded JSON response from the server:
my
$rooms
=
$chat
->publicRooms;
rooms:
- _id: GENERAL
default
: !!perl/
scalar
:JSON::PP::Boolean 1
lm: 2016-04-30T16:45:32.876Z
msgs: 54
name: general
t: c
ts: 2016-04-30T04:29:53.361Z
usernames:
- someuser
- someotheruser
- _id: 8L4QMdEFCYqRH3MNP
lm: 2016-04-30T21:08:27.760Z
msgs: 2
name: dev
t: c
ts: 2016-04-30T05:30:59.847Z
u:
_id: EBbKeYF9Gvppdhhwr
username: someuser
usernames:
- someuser
- has_room(:$room)
-
Returns 1 if a room exists on the server, 0 otherwise.
if
(
$chat
->has_room(
"general"
) {
$chat
->
join
(
room
=>
"general"
);
$chat
->
send
(
room
=>
"general"
,
message
=>
"Hello, world!"
);
}
else
{
...
}
- join(:$room,:$room)
-
Joins a room. Rooms have a human readable name and an id. You can use either, but if the name isn't known it will automatically fetch a list of rooms.
$chat
->
join
(
room
=>
"general"
);
- leave(:$id,:$room)
-
Leaves a room, specified either by name or id.
$chat
->leave(
room
=>
"general"
);
- messages(:$room,:$id)
-
Gets all the messages from a room, specified either by name or id.
my
$messages
=
$chat
->messages(
room
=>
"general"
);
- send(:$room,:$id,:$message)
-
Sends a message to a room.
$chat
->
send
(
room
=>
"general"
,
message
=>
"Hello, world!"
);
AUTHOR
Dale Evans, <daleevans@github>
http://devans.mycanadapayday.com
SEE ALSO
https://rocket.chat/docs/master/developer-guides/rest-api/