Python API wrapper for Rocket.Chat's REST API, enabling developers to programmatically interact with Rocket.Chat servers for chat automation, bot development, and integration purposes
—
Comprehensive user administration including account creation, profile management, authentication, and user preferences. Supports user roles, presence status, and avatar management.
def me(self, **kwargs):
"""
Get current authenticated user information.
Returns:
requests.Response: Current user details
"""
def users_info(self, user_id=None, username=None, **kwargs):
"""
Get user information by ID or username.
Parameters:
- user_id (str, optional): User ID
- username (str, optional): Username
Returns:
requests.Response: User information
"""
def users_list(self, **kwargs):
"""
List all users.
Parameters:
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
- sort (dict, optional): Sort criteria
- query (dict, optional): Search query
Returns:
requests.Response: List of users
"""def users_create(self, email, name, password, username, **kwargs):
"""
Create a new user account.
Parameters:
- email (str): User email address
- name (str): Full name
- password (str): Password
- username (str): Username
- active (bool, optional): Active status
- roles (list, optional): User roles
- joinDefaultChannels (bool, optional): Join default channels
- requirePasswordChange (bool, optional): Require password change
- sendWelcomeEmail (bool, optional): Send welcome email
- verified (bool, optional): Email verified status
- customFields (dict, optional): Custom user fields
Returns:
requests.Response: User creation result
"""
def users_register(self, email, name, password, username, **kwargs):
"""
Register a new user (public registration).
Parameters:
- email (str): User email address
- name (str): Full name
- password (str): Password
- username (str): Username
- secretURL (str, optional): Secret registration URL
Returns:
requests.Response: Registration result
"""def users_update(self, user_id, **kwargs):
"""
Update existing user.
Parameters:
- user_id (str): User ID to update
- data (dict): User data to update
- email (str, optional): New email
- name (str, optional): New name
- password (str, optional): New password
- username (str, optional): New username
- active (bool, optional): Active status
- roles (list, optional): User roles
- customFields (dict, optional): Custom fields
Returns:
requests.Response: Update result
"""
def users_delete(self, user_id, **kwargs):
"""
Delete a user account.
Parameters:
- user_id (str): User ID to delete
- confirmRelinquish (bool, optional): Confirm relinquish ownership
Returns:
requests.Response: Deletion result
"""
def users_set_active_status(self, user_id, active_status, **kwargs):
"""
Set user active status.
Parameters:
- user_id (str): User ID
- active_status (bool): Active status
Returns:
requests.Response: Status update result
"""def users_get_avatar(self, user_id=None, username=None, **kwargs):
"""
Get user avatar URL.
Parameters:
- user_id (str, optional): User ID
- username (str, optional): Username
Returns:
requests.Response: Avatar URL
"""
def users_set_avatar(self, avatar_url, **kwargs):
"""
Set user avatar.
Parameters:
- avatar_url (str): Avatar image URL
- userId (str, optional): User ID (admin only)
- username (str, optional): Username (admin only)
Returns:
requests.Response: Avatar set result
"""
def users_reset_avatar(self, user_id=None, username=None, **kwargs):
"""
Reset user avatar to default.
Parameters:
- user_id (str, optional): User ID
- username (str, optional): Username
Returns:
requests.Response: Avatar reset result
"""def users_create_token(self, user_id=None, username=None, **kwargs):
"""
Create authentication token for user.
Parameters:
- user_id (str, optional): User ID
- username (str, optional): Username
Returns:
requests.Response: Token creation result
"""
def users_forgot_password(self, email, **kwargs):
"""
Send password reset email.
Parameters:
- email (str): User email address
Returns:
requests.Response: Password reset result
"""def users_get_presence(self, user_id=None, username=None, **kwargs):
"""
Get user online presence status.
Parameters:
- user_id (str, optional): User ID
- username (str, optional): Username
Returns:
requests.Response: Presence information
"""
def users_set_status(self, message, **kwargs):
"""
Set user status message.
Parameters:
- message (str): Status message
- status (str, optional): Status type (online, away, busy, offline)
Returns:
requests.Response: Status update result
"""def users_get_preferences(self, **kwargs):
"""
Get user preferences.
Returns:
requests.Response: User preferences
"""
def users_set_preferences(self, user_id, data, **kwargs):
"""
Set user preferences.
Parameters:
- user_id (str): User ID
- data (dict): Preferences data
Returns:
requests.Response: Preferences update result
"""UserObject = {
"_id": "str", # User ID
"username": "str", # Username
"name": "str", # Full name
"emails": [{ # Email addresses
"address": "str",
"verified": "bool"
}],
"status": "str", # online, away, busy, offline
"statusText": "str", # Custom status message
"active": "bool", # Account active status
"roles": ["str"], # User roles
"createdAt": "datetime", # Account creation date
"lastLogin": "datetime", # Last login time
"avatarUrl": "str", # Avatar image URL
"customFields": "dict", # Custom user fields
"settings": { # User preferences
"preferences": "dict"
}
}# Create a new user
user_response = rocket.users_create(
email='john.doe@example.com',
name='John Doe',
password='securepassword',
username='john.doe',
roles=['user'],
active=True
)
user_id = user_response.json()['user']['_id']
# Update user information
rocket.users_update(
user_id=user_id,
name='John Smith',
customFields={'department': 'Engineering'}
)
# Set user avatar
rocket.users_set_avatar('https://example.com/avatar.jpg')
# Get user presence
presence = rocket.users_get_presence(username='john.doe')
print(f"User is {presence.json()['presence']}")Install with Tessl CLI
npx tessl i tessl/pypi-rocketchat-a-p-i