gnello / php-openfire-restapi
Client for the REST API plugin of the OpenFire Server
Installs: 11 761
Dependents: 0
Suggesters: 0
Security: 0
Stars: 30
Watchers: 7
Forks: 14
Open Issues: 0
Requires
- php: >=5.5.0
- ext-json: *
- guzzlehttp/guzzle: ^6.0||^7.0
- psr/http-message: ^1.0
Requires (Dev)
- phpunit/phpunit: *
- symfony/var-dumper: ^3.1
This package is auto-updated.
Last update: 2024-11-11 01:55:26 UTC
README
A PHP client for the Openfire REST API Plugin which provides you the ability to manage an Openfire instance by sending a REST/HTTP request to the server.
Please read the documentation for further information on using this application.
This client completely supports the >= 1.3.9 version of the REST API Plugin.
Dependencies
The REST API plugin need to be installed and configured on your Openfire server.
Installation
Composer
The best way to install php-openfire-restapi is to use Composer, run the following command:
composer require gnello/php-openfire-restapi
Read more about how to install and use Composer here.
Usage
Instance and authentication
There are two ways of authentication:
- Basic HTTP Authentication
use Gnello\OpenFireRestAPI\Client; $client = new Client([ 'client' => [ 'username' => 'ironman', 'password' => 'romanoff', ] ]);
- Shared secret key
use Gnello\OpenFireRestAPI\Client; $client = new Client([ 'client' => [ 'secretKey' => 'hulkstink', ] ]);
Make sure to enable one of these authentication methods on your Openfire server.
Configuration
You can configure the Client with the following options:
use Gnello\OpenFireRestAPI\Client; $client = new Client([ 'client' => [ 'secretKey' => 'hulkstink', 'scheme' => 'https', 'basePath' => '/plugins/restapi/v1/', 'host' => 'localhost', 'port' => '9090', ], 'guzzle' => [ //put here any options for Guzzle ] ]);
The only options required are those relating to the chosen authentication method.
Check the response
This Client follows the PSR-7 document, therefore any response is a ResponseInterface type:
if ($response->getStatusCode() == 200) { echo "Oh, great."; var_dump(json_decode($response->getBody())); } else { echo "HTTP ERROR " . $response->getStatusCode(); }
Users endpoint
//Create a new user $response = $client->getUserModel()->createUser([ "username" => "admin", "name" => "Administrator", "email" => "admin@example.com", "password" => "p4ssword", "properties" => [ [ "key" => "console.order", "value" => "session-summary=0" ] ] ]); //Delete a user $response = $client->getUserModel()->deleteUser('ironman'); //Ban a user $response = $client->getUserModel()->lockoutUser('ironman'); //Unban a user $response = $client->getUserModel()->unlockUser('ironman'); //Please read the UserModel class for a complete list of available methods.
Chat Rooms endpoint
//Create a chat room $response = $client->getChatRoomModel()->createChatRoom([ "roomName" => "global-1", "naturalName" => "global-1_test_hello", "description" => "Global chat room", "subject" => "Global chat room subject", "creationDate" => "2012-10-18T16:55:12.803+02:00", "modificationDate" => "2014-07-10T09:49:12.411+02:00", "maxUsers" => "0", "persistent" => "true", "publicRoom" => "true", "registrationEnabled" => "false", "canAnyoneDiscoverJID" => "true", "canOccupantsChangeSubject" => "false", "canOccupantsInvite" => "false", "canChangeNickname" => "false", "logEnabled" => "true", "loginRestrictedToNickname" => "true", "membersOnly" => "false", "moderated" => "false", "broadcastPresenceRoles" => [ "moderator", "participant", "visitor" ], "owners" => [ "owner@localhost" ], "admins" => [ "admin@localhost" ], "members" => [ "member@localhost" ], "outcasts" => [ "outcast@localhost" ] ]); //Retrieve a chat room $response = $client->getChatRoomModel()->retrieveChatRoom('theavengers') //Add a user with role to a chat room use \Gnello\OpenFireRestAPI\Models\ChatRoomModel; $response = $client->getChatRoomModel()->addUserWithRoleToChatRoom('theavengers', 'ironman', ChatRoomModel::ROLE_MEMBER); //Delete a chat room $response = $client->getChatRoomModel()->deleteChatRoom('theavengers'); //Please read the ChatRoomModel class for a complete list of available methods.
Groups endpoint
//Create a group $response = $client->getGroupModel()->createGroup([ "name" => "theavengers", "description" => "team of superheroes appearing in American comic books published by Marvel Comics", ]); //Retrieve a group $response = $client->getGroupModel()->retrieveGroup('theavengers') //Delete a group $response = $client->getGroupModel()->deleteGroup('theavengers'); //Please read the GroupModel class for a complete list of available methods.
Endpoints supported
All the endpoints are supported:
Contact
- gnello luca@gnello.com