There's a document in src/providers/twitch/api which describes how we interact with the Twitch API. Keeping this up to date might be a healthy way for us to ensure we keep using the right APIs for the right job.
4.2 KiB
Twitch API
this folder describes what sort of API requests we do, what permissions are required for the requests etc
Kraken (V5)
We use a bunch of Kraken (V5) in Chatterino2.
Get User
URL: https://dev.twitch.tv/docs/v5/reference/users#get-user-by-id
Migration path: Unknown
- We implement this in
providers/twitch/api/Kraken.cpp getUser
Used in:UserInfoPopup
to get the "created at" date of a user
Get Channel
URL: https://dev.twitch.tv/docs/v5/reference/channels#get-channel
Migration path: Unknown
- We implement this in
providers/twitch/api/Kraken.cpp getChannel
Used in:TwitchChannel::refreshTitle
to check the current stream title/game of offline channels
Follow Channel
URL: https://dev.twitch.tv/docs/v5/reference/users#follow-channel
Requires user_follows_edit
scope
Migration path: Unknown
- We implement this API in
providers/twitch/TwitchAccount.cpp followUser
Unfollow Channel
URL: https://dev.twitch.tv/docs/v5/reference/users#unfollow-channel
Requires user_follows_edit
scope
Migration path: Unknown
- We implement this API in
providers/twitch/TwitchAccount.cpp unfollowUser
Get Cheermotes
URL: https://dev.twitch.tv/docs/v5/reference/bits#get-cheermotes
Migration path: Not checked
- We implement this API in
providers/twitch/TwitchChannel.cpp
to resolve a chats available cheer emotes. This helps us parse incoming messages likepajaCheer1000
Get User Block List
URL: https://dev.twitch.tv/docs/v5/reference/users#get-user-block-list
Migration path: Unknown
- We use this in
providers/twitch/TwitchAccount.cpp loadIgnores
Block User
URL: https://dev.twitch.tv/docs/v5/reference/users#block-user
Requires user_blocks_edit
scope
Migration path: Unknown
- We use this in
providers/twitch/TwitchAccount.cpp ignoreByID
Unblock User
URL: https://dev.twitch.tv/docs/v5/reference/users#unblock-user
Requires user_blocks_edit
scope
Migration path: Unknown
- We use this in
providers/twitch/TwitchAccount.cpp unignoreByID
Get User Emotes
URL: https://dev.twitch.tv/docs/v5/reference/users#get-user-emotes
Requires user_subscriptions
scope
Migration path: Unknown
- We use this in
providers/twitch/TwitchAccount.cpp loadEmotes
to figure out which emotes a user is allowed to use!
AUTOMOD APPROVE
Unofficial documentation: https://discuss.dev.twitch.tv/t/allowing-others-aka-bots-to-use-twitchbot-reject/8508/2
- We use this in
providers/twitch/TwitchAccount.cpp autoModAllow
to approve an automod deny/allow question
AUTOMOD DENY
Unofficial documentation: https://discuss.dev.twitch.tv/t/allowing-others-aka-bots-to-use-twitchbot-reject/8508/2
- We use this in
providers/twitch/TwitchAccount.cpp autoModDeny
to deny an automod deny/allow question
Helix
Full Helix API reference: https://dev.twitch.tv/docs/api/reference
Get Users
URL: https://dev.twitch.tv/docs/api/reference#get-users
- We implement this in
providers/twitch/api/Helix.cpp fetchUsers
.
Used in:UserInfoPopup
to get ID and viewcount of username we clickedCommandController
to power any commands that need to get a user IDToasts
to get the profile picture of a streamer who just went liveTwitchAccount
ignore and unignore features to translate user name to user ID
Get Users Follows
URL: https://dev.twitch.tv/docs/api/reference#get-users-follows
- We implement this in
providers/twitch/api/Helix.cpp fetchUsersFollows
Used in:UserInfoPopup
to get number of followers a user has
Get Streams
URL: https://dev.twitch.tv/docs/api/reference#get-streams
- We implement this in
providers/twitch/api/Helix.cpp fetchStreams
Used in:TwitchChannel
to get live status, game, title, and viewer count of a channelNotificationController
to provide notifications for channels you might not have open in Chatterino, but are still interested in getting notifications for
TMI
The TMI api is undocumented.
Get Chatters
Undocumented
- We use this in
widgets/splits/Split.cpp showViewerList
- We use this in
providers/twitch/TwitchChannel.cpp refreshChatters