A simple PHP class designed to work with Openfire Rest Api plugin. It is used to remote manage the Openfire server.
php-openfire-restapi is licensed under MIT style license, see LICENCE for further information.
The REST API plugin need to be installed and configured on the Openfire server.
The easiest way to install is via composer. Create the following composer.json
file and run the composer.phar
install command to install it.
composer require gidkom/php-openfire-restapi:v1.1.0
{
"require": {
"gidkom/php-openfire-restapi": "v1.1.0"
}
}
include "vendor/autoload.php";
# Create the Openfire Rest api object
$api = new Gidkom\OpenFireRestApi\OpenFireRestApi;
# Set the required config parameters
$api->secret = "MySecret";
$api->host = "jabber.myserver.com";
$api->port = "9090"; # default 9090
# Optional parameters (showing default values)
$api->useSSL = false;
$api->plugin = "/plugins/restapi/v1"; # plugin
# Check result if command is succesful
if($result['status']) {
# Display result
print_r($result['data']);
} else {
# Something went wrong
echo 'Error: ';
echo $result['data'];
}
# Retrieve users
$options = ['search'=> 'John']; # optional
$result = $api->getUsers($options);
# Retrieve a user
$result = $api->getUser($username);
# Add a new user to OpenFire and add to a group
$result = $api->addUser('Username', 'Password', 'Real Name', 'johndoe@domain.com', array('Group 1'));
#Delete a user from OpenFire
$result = $api->deleteUser($username);
# Update a user
# The $password, $name, $email, $groups arguments are optional
$result = $api->updateUser($username, $password, $name, $email, $groups);
# Add user to a group
$result = $api->addToGroup($username, $groupName);
# Delete user from a group
$result = $api->deleteFromGroup($username, $groupName);
# Disable/lockout a user
$result = $api->lockoutUser($username);
# Enable a user
$result = $api->unlockUser($username);
# Retrieve a user roster
$api->userRosters($username);
# Create a user roster entry
$api->addToRoster($username, $jid);
# Delete from roster
$api->deleteFromRoster($username, $jid);
# Update user roster
$api->updateRoster($username, $jid, $nickname, $subscription]);
# Get all chat rooms
$api->getAllChatRooms();
# Retrieve a chat room
$api->getChatRoom($name);
# Create a chat room
# $params = ['naturalName'=>'myroom', 'roomName'=>'myroom', 'description'=>'my chat room'];
$api->createChatRoom($params);
# Delete a chat room
$api->deleteChatRoom($roomName);
# Update a chat room
# $params = ['naturalName'=>'myroom', 'roomName'=>'myroom', 'description'=>'my fav chat room'];
$api->createChatRoom($roomName =>$params);
# Add user with role to chat room
$api->addUserRoleToChatRoom($roomName, $name, $role);
# Retrieve all system properties
$api->getSystemProperties();
# Retrieve a system property
$api->getSystemProperty('plugin.restapi.httpAuth');
# Create a system property
$api->createSystemProperty(['key'=>'test', 'value'=>'testname']);
# Update a system property
$api->updateSystemProperty(['key'=>'test', 'value'=>'testname']);
# Delete a system property
$api->deleteSystemProperty('test');
# Retrieve concurrent sessions
$api->getConcurrentSessons();
# Get all groups
$api->getGroups();
# Retrieve group
$api->getGroup($groupName);
# Create a group
$api->createGroup($groupName, $description);
# Update a group description
$api->updateGroup($groupName, $description);
# Delete a group
$api->deleteGroup($groupName);
# Retrieve all users sessions
$api->getSessions();
# Retrieve all users sessions
$api->getUserSessions($username);
# Close all user sessions
$api->closeUserSessions($username);
# Send a broadcast message to all online users
$api->broadcastMessage('hello');