TwitchUsersRequests
Inherits: TwitchRequestBase < RefCounted < Object
Twitch Users API for user information, blocking, and extensions.
Description
TwitchUsersRequests provides methods for retrieving user information, managing blocked users, and accessing user extensions. Requires various OAuth scopes depending on the operation. Access through TwitchAPI.get_users().
Tutorials
Methods
void |
block_user(target_user_id: String, params: Dictionary = {}) |
void |
get_user_active_extensions(user_id: String = "") |
void |
get_user_block_list(broadcaster_id: String, params: Dictionary = {}) |
void |
|
void |
get_users(params: Dictionary = {}) |
void |
unblock_user(target_user_id: String) |
void |
update_user(description: String) |
void |
update_user_extensions(data: Dictionary) |
Method Descriptions
void block_user(target_user_id: String, params: Dictionary = {}) 🔗
Blocks a user. Optional params can include source_context and reason. Requires user:manage:blocked_users scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "user_blocked".
Response: Returns 204 No Content on success.
TwitchAPI.get_users().block_user("target_user_id", {"reason": "spam"})
# Response: 204 No Content on success
void get_user_active_extensions(user_id: String = "") 🔗
Gets information about active extensions installed by the user. Optional user_id queries another user's extensions. Requires user:read:broadcast scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "user_active_extensions_received".
Response includes: panel (slots 1-3), overlay (slot 1), component (slots 1-2) objects with extension configurations.
TwitchAPI.get_users().get_user_active_extensions("user_id")
# Response: {"data": {"panel": {"1": {"active": true, "id": "ext123", "version": "1.0.0", "name": "My Extension"}}, "overlay": {}, "component": {}}}
void get_user_block_list(broadcaster_id: String, params: Dictionary = {}) 🔗
Gets the list of users blocked by the broadcaster. Optional params can include first. Requires user:read:blocked_users scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "user_block_list_received".
Response includes: Array of blocked users with user_id, user_login, display_name.
TwitchAPI.get_users().get_user_block_list("broadcaster_id")
# Response: {"data": [{"user_id": "456", "user_login": "blocked1", "display_name": "BlockedUser1"}]}
void get_user_extensions() 🔗
Gets all extensions available to the user. Requires user:read:broadcast scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "user_extensions_received".
Response includes: Array of extensions with id, version, name, can_activate, type array.
TwitchAPI.get_users().get_user_extensions()
# Response: {"data": [{"id": "ext123", "version": "1.0.0", "name": "My Extension", "can_activate": true, "type": ["panel", "overlay"]}]}
void get_users(params: Dictionary = {}) 🔗
Gets information about one or more users by ID or login name. params should include id or login arrays. Optional user:read:email scope includes email field. Results are returned via the TwitchAPI.request_completed signal with signal_name "users_received".
Response includes: Array of users with id, login, display_name, type, broadcaster_type, description, profile_image_url, offline_image_url, view_count, email (if scope provided), created_at.
var params = {"login": ["twitch", "twitchdev"]}
TwitchAPI.get_users().get_users(params)
# Response: {"data": [{"id": "141981764", "login": "twitch", "display_name": "Twitch", "type": "", "broadcaster_type": "partner", "description": "We're Twitch", "profile_image_url": "https://...", "created_at": "2007-05-22T10:39:54Z"}]}
void unblock_user(target_user_id: String) 🔗
Unblocks a user. Requires user:manage:blocked_users scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "user_unblocked".
Response: Returns 204 No Content on success.
TwitchAPI.get_users().unblock_user("target_user_id")
# Response: 204 No Content on success
void update_user(description: String) 🔗
Updates the authenticated user's description/bio. Requires user:edit scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "user_updated".
Response includes: Updated user object (same structure as get_users response).
TwitchAPI.get_users().update_user("Streaming games and having fun!")
# Response: {"data": [{"id": "123", "description": "Streaming games and having fun!", ...}]}
void update_user_extensions(data: Dictionary) 🔗
Updates the user's installed extension configuration including panel, overlay, and component slots. Requires user:edit:broadcast scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "user_extensions_updated".
Response includes: Updated extension configuration (same structure as get_user_active_extensions).
var ext_config = {"panel": {"1": {"active": true, "id": "ext123", "version": "1.0.0"}}}
TwitchAPI.get_users().update_user_extensions(ext_config)
# Response: {"data": {"panel": {"1": {"active": true, "id": "ext123", "version": "1.0.0", "name": "My Extension"}}, ...}}