Initial files
This commit is contained in:
3
.env
Normal file
3
.env
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
SERVER_HOST="https://chat.server.com"
|
||||||
|
SERVER_USER="user"
|
||||||
|
SERVER_PASS="pass"
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,6 +2,7 @@
|
|||||||
composer.phar
|
composer.phar
|
||||||
/vendor/
|
/vendor/
|
||||||
*.code-workspace
|
*.code-workspace
|
||||||
|
|
||||||
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
|
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
|
||||||
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
|
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
|
||||||
# composer.lock
|
# composer.lock
|
||||||
|
14
README.md
14
README.md
@@ -1,4 +1,16 @@
|
|||||||
# rocket-chat-php-scripts
|
# rocket-chat-php-scripts
|
||||||
|
|
||||||
Some PHP scripts to manage Rocket via the API using this Class
|
Some PHP scripts to manage Rocket via the API using this Class
|
||||||
https://github.com/alekseykuleshov/rocket-chat#login
|
https://github.com/alekseykuleshov/rocket-chat#login
|
||||||
|
|
||||||
|
To install:
|
||||||
|
|
||||||
|
git clone https://src.koozali.org/jcrisp/rocket-chat-php-scripts.git
|
||||||
|
|
||||||
|
cd rocket-chat-php-scripts
|
||||||
|
|
||||||
|
composer install
|
||||||
|
|
||||||
|
Set your .env vars
|
||||||
|
|
||||||
|
php -f somefile.php
|
||||||
|
6
composer.json
Normal file
6
composer.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"atdev/rocket-chat": "~1.0",
|
||||||
|
"vlucas/phpdotenv": "^5.6"
|
||||||
|
}
|
||||||
|
}
|
1666
composer.lock
generated
Normal file
1666
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
73
koozali-channel-message.php
Normal file
73
koozali-channel-message.php
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// https://github.com/alekseykuleshov/rocket-chat
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a message to a public channel
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Dotenv\Dotenv;
|
||||||
|
|
||||||
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
|
$dotenv = Dotenv::createImmutable(__DIR__);
|
||||||
|
$dotenv->load();
|
||||||
|
$dotenv->required(['SERVER_HOST', 'SERVER_USER', 'SERVER_PASS']);
|
||||||
|
|
||||||
|
$server = $_SERVER['SERVER_HOST'];
|
||||||
|
$user = $_SERVER['SERVER_USER'];
|
||||||
|
$pass = $_SERVER['SERVER_PASS'];
|
||||||
|
|
||||||
|
|
||||||
|
// Firstly, init
|
||||||
|
\ATDev\RocketChat\Chat::setUrl($server); // No trailing / on the https://host.domain
|
||||||
|
|
||||||
|
// Now, login
|
||||||
|
$result = \ATDev\RocketChat\Chat::login($user, $pass);
|
||||||
|
|
||||||
|
if (!$result) {
|
||||||
|
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Chat::getError();
|
||||||
|
// And out
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Do something
|
||||||
|
$myText = "OK - upgraded to 7.9.3 after a few wriggles with docker";
|
||||||
|
// All Rooms are converted to hyphenated
|
||||||
|
$channelID = "smestuff";
|
||||||
|
$channelID = strtolower($channelID);
|
||||||
|
$myUserId = $result->getUserId();
|
||||||
|
|
||||||
|
$listing = \ATDev\RocketChat\Channels\Channel::listing();
|
||||||
|
|
||||||
|
if (!$listing) {
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Channels\Channel::getError();
|
||||||
|
// Bail and logout
|
||||||
|
} else {
|
||||||
|
foreach ($listing as $channel) {
|
||||||
|
$mychannel = strtolower($channel->getName());
|
||||||
|
//echo $channel->getName() . "<br>";
|
||||||
|
//$myRoomId = $channel->getRoomId();
|
||||||
|
echo "my channel $mychannel - ChannelId $channelID \n";
|
||||||
|
if ($mychannel == $channelID) {
|
||||||
|
// Send a message
|
||||||
|
$myChannelId = $channel->getChannelId();
|
||||||
|
echo "ID = $myChannelId\n";
|
||||||
|
$message = new \ATDev\RocketChat\Messages\Message();
|
||||||
|
// Always a Message->RoomID - use either group or channelID from above
|
||||||
|
$message->setRoomId($myChannelId);
|
||||||
|
$message->setText($myText);
|
||||||
|
$messageresult = $message->postMessage();
|
||||||
|
if (!$messageresult) {
|
||||||
|
// Log the error
|
||||||
|
$error = $message->getError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = \ATDev\RocketChat\Chat::logout();
|
||||||
|
}
|
||||||
|
// Never logged in or has logged out
|
||||||
|
}
|
93
koozali-deactivate-users.php
Normal file
93
koozali-deactivate-users.php
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// https://github.com/alekseykuleshov/rocket-chat
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DeActivate old users
|
||||||
|
*
|
||||||
|
* Add protected users to array
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$protectedUsers = array("rocket.cat", "dani", "botpress-connector.bot", "jitsi.bot", "admin", "john");
|
||||||
|
$bestAfterDate = "2023";
|
||||||
|
|
||||||
|
use Dotenv\Dotenv;
|
||||||
|
|
||||||
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
|
$dotenv = Dotenv::createImmutable(__DIR__);
|
||||||
|
$dotenv->load();
|
||||||
|
$dotenv->required(['SERVER_HOST', 'SERVER_USER', 'SERVER_PASS']);
|
||||||
|
|
||||||
|
$server = $_SERVER['SERVER_HOST'];
|
||||||
|
$user = $_SERVER['SERVER_USER'];
|
||||||
|
$pass = $_SERVER['SERVER_PASS'];
|
||||||
|
|
||||||
|
|
||||||
|
// Firstly, init
|
||||||
|
\ATDev\RocketChat\Chat::setUrl($server); // No trailing / on the https://host.domain
|
||||||
|
|
||||||
|
// Now, login
|
||||||
|
$result = \ATDev\RocketChat\Chat::login($user, $pass);
|
||||||
|
|
||||||
|
if (!$result) {
|
||||||
|
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Chat::getError();
|
||||||
|
// And out
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$userObj = new \ATDev\RocketChat\Users\User;
|
||||||
|
|
||||||
|
$listing = $userObj->listing(0, 150);
|
||||||
|
// Will retrieve use list inc last login
|
||||||
|
|
||||||
|
if (!$listing) {
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Users\User::getError();
|
||||||
|
} else {
|
||||||
|
//var_dump($listing);
|
||||||
|
|
||||||
|
$x = 1;
|
||||||
|
$userArr = array();
|
||||||
|
foreach ($listing as $user) {
|
||||||
|
$userId = $user->getUserName($user);
|
||||||
|
$lastLogin = $user->getLastLogin($user);
|
||||||
|
$userArr[$userId] = ($lastLogin);
|
||||||
|
}
|
||||||
|
unset($userObj);
|
||||||
|
//asort($userArr);
|
||||||
|
|
||||||
|
$protectedUsers = array("rocket.cat", "dani", "botpress-connector.bot", "jitsi.bot", "admin", "john");
|
||||||
|
$bestAfterDate = "2023";
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($userArr as $ID => $date) {
|
||||||
|
|
||||||
|
// If $ID not in array
|
||||||
|
|
||||||
|
if (! in_array($ID, $protectedUsers)) {
|
||||||
|
|
||||||
|
$dateTimeInstance = new DateTime($date);
|
||||||
|
$formattedFromObject = $dateTimeInstance->format('Y');
|
||||||
|
|
||||||
|
if ($formattedFromObject >= $bestAfterDate) {
|
||||||
|
echo "Keep Key=" . $ID . ", Value=" . $formattedFromObject;
|
||||||
|
echo "\n";
|
||||||
|
} else {
|
||||||
|
$user = new \ATDev\RocketChat\Users\User($ID);
|
||||||
|
$active = $user->getActive();
|
||||||
|
|
||||||
|
echo "Delete Key=" . $ID . ", Value=" . $formattedFromObject;
|
||||||
|
echo "\n";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "Protected User=" . $ID;
|
||||||
|
echo "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = \ATDev\RocketChat\Chat::logout();
|
||||||
|
}
|
72
koozali-group-message.php
Normal file
72
koozali-group-message.php
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// https://github.com/alekseykuleshov/rocket-chat
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a message to a private group
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Dotenv\Dotenv;
|
||||||
|
|
||||||
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
|
$dotenv = Dotenv::createImmutable(__DIR__);
|
||||||
|
$dotenv->load();
|
||||||
|
$dotenv->required(['SERVER_HOST', 'SERVER_USER', 'SERVER_PASS']);
|
||||||
|
|
||||||
|
$server = $_SERVER['SERVER_HOST'];
|
||||||
|
$user = $_SERVER['SERVER_USER'];
|
||||||
|
$pass = $_SERVER['SERVER_PASS'];
|
||||||
|
|
||||||
|
|
||||||
|
// Firstly, init
|
||||||
|
\ATDev\RocketChat\Chat::setUrl($server); // No trailing / on the https://host.domain
|
||||||
|
|
||||||
|
// Now, login
|
||||||
|
$result = \ATDev\RocketChat\Chat::login($user, $pass);
|
||||||
|
|
||||||
|
if (!$result) {
|
||||||
|
|
||||||
|
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Chat::getError();
|
||||||
|
// And out
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Do something
|
||||||
|
$myText = "Hello @all - need to upgrade this instance. Hopefully back shortly";
|
||||||
|
// All Rooms are converted to hyphenated
|
||||||
|
$groupID = "systemadmin";
|
||||||
|
$groupID = strtolower($groupID);
|
||||||
|
$myUserId = $result->getUserId();
|
||||||
|
|
||||||
|
$listing = \ATDev\RocketChat\Groups\Group::listing();
|
||||||
|
|
||||||
|
if (!$listing) {
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Groups\Group::getError();
|
||||||
|
// Bail and logout
|
||||||
|
} else {
|
||||||
|
foreach ($listing as $group) {
|
||||||
|
$myGroup = strtolower($group->getName());
|
||||||
|
// echo $group->getName() . "<br>";
|
||||||
|
//$myRoomId = $group->getRoomId();
|
||||||
|
|
||||||
|
if ($myGroup == $groupID) {
|
||||||
|
// Send a message
|
||||||
|
$myRoomId = $group->getRoomId();
|
||||||
|
$message = new \ATDev\RocketChat\Messages\Message();
|
||||||
|
$message->setRoomId($myRoomId);
|
||||||
|
$message->setText($myText);
|
||||||
|
$messageresult = $message->postMessage();
|
||||||
|
if (!$messageresult) {
|
||||||
|
// Log the error
|
||||||
|
$error = $message->getError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = \ATDev\RocketChat\Chat::logout();
|
||||||
|
}
|
||||||
|
// Never logged in or has logged out
|
||||||
|
}
|
69
koozali-sample-login.php
Normal file
69
koozali-sample-login.php
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sample login
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Dotenv\Dotenv;
|
||||||
|
|
||||||
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
|
$dotenv = Dotenv::createImmutable(__DIR__);
|
||||||
|
$dotenv->load();
|
||||||
|
$dotenv->required(['SERVER_HOST', 'SERVER_USER', 'SERVER_PASS']);
|
||||||
|
|
||||||
|
$server = $_SERVER['SERVER_HOST'];
|
||||||
|
$user = $_SERVER['SERVER_USER'];
|
||||||
|
$pass = $_SERVER['SERVER_PASS'];
|
||||||
|
|
||||||
|
|
||||||
|
// Firstly, init
|
||||||
|
\ATDev\RocketChat\Chat::setUrl($server); // No trailing / on the https://host.domain
|
||||||
|
|
||||||
|
// Now, login
|
||||||
|
$result = \ATDev\RocketChat\Chat::login($user, $pass);
|
||||||
|
|
||||||
|
if (!$result) {
|
||||||
|
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Chat::getError();
|
||||||
|
// And out
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Do something
|
||||||
|
$myText = "Some message to @all users";
|
||||||
|
// All Rooms are converted to hyphenated
|
||||||
|
$groupID = "IT-Stuff";
|
||||||
|
$groupID = strtolower($groupID);
|
||||||
|
$myUserId = $result->getUserId();
|
||||||
|
|
||||||
|
$listing = \ATDev\RocketChat\Groups\Group::listing();
|
||||||
|
|
||||||
|
if (!$listing) {
|
||||||
|
// Log the error
|
||||||
|
$error = \ATDev\RocketChat\Groups\Group::getError();
|
||||||
|
// Bail and logout
|
||||||
|
} else {
|
||||||
|
foreach ($listing as $group) {
|
||||||
|
$myGroup = strtolower($group->getName());
|
||||||
|
// echo $group->getName() . "<br>";
|
||||||
|
//$myRoomId = $group->getRoomId();
|
||||||
|
|
||||||
|
if ($myGroup == $groupID) {
|
||||||
|
// Send a message
|
||||||
|
$myRoomId = $group->getRoomId();
|
||||||
|
$message = new \ATDev\RocketChat\Messages\Message();
|
||||||
|
$message->setRoomId($myRoomId);
|
||||||
|
$message->setText($myText);
|
||||||
|
$messageresult = $message->postMessage();
|
||||||
|
if (!$messageresult) {
|
||||||
|
// Log the error
|
||||||
|
$error = $message->getError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = \ATDev\RocketChat\Chat::logout();
|
||||||
|
}
|
||||||
|
// Never logged in or has logged out
|
||||||
|
}
|
Reference in New Issue
Block a user