Giter Club home page Giter Club logo

rocket-chat-rest-client's Introduction

Rocket Chat REST API client in PHP

Use this client if you need to connect to Rocket Chat with a software written in PHP, such as WordPress or Drupal.

How to use

This Rocket Chat client is installed via Composer. To install, simply add it to your composer.json file:

{
    "require": {
        "fab1en/rocket-chat-rest-client": "dev-master"
    }
}

And run composer to update your dependencies:

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update

Then, import the autoload.php from your vendor folder.

After this, you have to define some constants to point to your Rocket Chat instance

define('REST_API_ROOT', '/api/v1/');
define('ROCKET_CHAT_INSTANCE', 'https://my-rocket-chat-instance.example.org');

Finally, instance the classes you need:

$api = new \RocketChat\Client();
echo $api->version(); echo "\n";

// login as the main admin user
$admin = new \RocketChat\User('my-admin-name', 'my-admin-password');
if( $admin->login() ) {
  echo "admin user logged in\n";
};
$admin->info();
echo "I'm {$admin->nickname} ({$admin->id}) "; echo "\n";

Manage user

// create a new user
$newuser = new \RocketChat\User('new_user_name', 'new_user_password', array(
  'nickname' => 'New user nickname',
  'email' => '[email protected]',
));
if( !$newuser->login(false) ) {
  // actually create the user if it does not exist yet
  $newuser->create();
}
echo "user {$newuser->nickname} created ({$newuser->id})\n";

Create a channel and post message

This needs testing

// create a new channel
$channel = new \RocketChat\Channel( 'my_new_channel', array($newuser, $admin) );
$channel->create();
// post a message
$channel->postMessage('Hello world');

Post message to channel

Allow logged in user to create message to any channel they have permissions for

Needs a properly formatted JSON string.

$message      = '{ "channel": "general", "text": "Test message from PHP API", "emoji": ":partying_face:" }';```
$channel      = new \RocketChat\Model\Room\Channel();
$postMessage  = $channel->postInChannel($message);

Logout

//Logout regardless
$bot->logout();

Credits

This REST client uses the excellent Httpful PHP library by Nate Good (github repo is here).

rocket-chat-rest-client's People

Contributors

alekseykuleshov avatar antonin-acs avatar fab1en avatar pjotrek-b avatar reetp avatar vkislichenko avatar yvestan avatar

Watchers

 avatar

rocket-chat-rest-client's Issues

Call to undefined method

Added enhanced error handling to the code on the Dev branch.

I keep getting 'call to undefined method'

Here I added https://github.com/reetp/rocket-chat-rest-client/blob/development/src/Client.php

 protected function createExceptionFromResponse($response, $prefix){

(Have tried public/private/protected but none seem to work !)

I then have this sort of thing in \Model\Room\Channel.php
https://github.com/reetp/rocket-chat-rest-client/blob/development/src/Model/Room/Channel.php

 public function postInChannel( $text ) {
blah

if($response is ok){ 
blah
}
else {
            throw $this->createExceptionFromResponse($response, "Could not postInChannel");
}

I force an error, it hits the throw line and then dies.

Uncaught Error: Call to undefined method RocketChat\Model\Room\Channel::createExceptionFromResponse() in /src/Model/Room/Channel.php:173

My guess is the namespace malarkey is screwed but I just can't see how

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.