Documentation ¶
Index ¶
- Constants
- type ChannelBanEvent
- type ChannelCheerEvent
- type ChannelFollowEvent
- type ChannelHypeTrainBeginEvent
- type ChannelHypeTrainEndEvent
- type ChannelHypeTrainProgressEvent
- type ChannelPointsCustomRewardAddEvent
- type ChannelPointsCustomRewardRedemptionAddEvent
- type ChannelPointsCustomRewardRedemptionUpdateEvent
- type ChannelPointsCustomRewardRemoveEvent
- type ChannelPointsCustomRewardUpdateEvent
- type ChannelRaidEvent
- type ChannelSubscribeEvent
- type ChannelUnbanEvent
- type ChannelUpdateEvent
- type ConditionChannelBan
- type ConditionChannelCheer
- type ConditionChannelFollow
- type ConditionChannelHypeTrainBegin
- type ConditionChannelHypeTrainEnd
- type ConditionChannelHypeTrainProgress
- type ConditionChannelPointsCustomRewardAdd
- type ConditionChannelPointsCustomRewardRedemptionAdd
- type ConditionChannelPointsCustomRewardRedemptionUpdate
- type ConditionChannelPointsCustomRewardRemove
- type ConditionChannelPointsCustomRewardUpdate
- type ConditionChannelRaid
- type ConditionChannelSubscribe
- type ConditionChannelUnban
- type ConditionChannelUpdate
- type ConditionStreamOffline
- type ConditionStreamOnline
- type ConditionUserAuthorizationRevoke
- type ConditionUserUpdate
- type EventNotificationMessage
- type HypeTrainContributor
- type PointsCustomReward
- type PointsRewardCooldown
- type PointsRewardLimit
- type StreamOfflineEvent
- type StreamOnlineEvent
- type Subscription
- type SubscriptionRequestStatus
- type TransportOpts
- type UserAuthorizationRevokeEvent
- type UserUpdateEvent
- type VerificationMessage
Constants ¶
const ( SubscriptionChannelUpdate = "channel.update" SubscriptionChannelFollow = "channel.follow" SubscriptionChannelSubscribe = "channel.subscribe" SubscriptionChannelCheer = "channel.cheer" SubscriptionChannelRaid = "channel.raid" SubscriptionChannelBan = "channel.ban" SubscriptionChannelUnban = "channel.unban" SubscriptionChannelPointsCustomRewardAdd = "channel.channel_points_custom_reward.add" SubscriptionChannelPointsCustomRewardUpdate = "channel.channel_points_custom_reward.update" SubscriptionChannelPointsCustomRewardRemove = "channel.channel_points_custom_reward.remove" SubscriptionChannelPointsCustomRewardRedemptionAdd = "channel.channel_points_custom_reward_redemption.add" SubscriptionChannelPointsCustomRewardRedemptionUpdate = "channel.channel_points_custom_reward_redemption.update" SubscriptionChannelHypeTrainBegin = "channel.hype_train.begin" SubscriptionChannelHypeTrainProgress = "channel.hype_train.progress" SubscriptionChannelHypeTrainEnd = "channel.hype_train.end" SubscriptionStreamOnline = "stream.online" SubscriptionStreamOffline = "stream.offline" SubscriptionUserAuthorizationRevoke = "user.authorization.revoke" SubscriptionUserUpdate = "user.update" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChannelBanEvent ¶
type ChannelBanEvent struct { UserUID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` ModeratorUID string `json:"moderator_user_id"` ModeratorUserLogin string `json:"moderator_user_login"` ModeratorUserName string `json:"moderator_user_name"` Reason string `json:"reason"` EndsAt time.Time `json:"ends_at"` IsPermanent bool `json:"is_permanent"` }
ChannelBanEvent represents a channel.ban event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelban` The channel.ban subscription type sends a notification when a viewer is timed out or banned from the specified channel. Must have channel:moderate scope.
type ChannelCheerEvent ¶
type ChannelCheerEvent struct { IsAnonymous bool `json:"is_anonymous"` UserUID string `json:"user_id,omitempty"` UserLogin string `json:"user_login,omitempty"` UserName string `json:"user_name,omitempty"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Message string `json:"message"` Bits int `json:"bits"` }
ChannelCheerEvent represents a channel.cheer event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelcheer` The channel.cheer subscription type sends a notification when a user cheers on the specified channel. Must have bits:read scope.
type ChannelFollowEvent ¶
type ChannelFollowEvent struct { UserUID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` }
ChannelFollowEvent represents a channel.follow event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelfollow` The channel.follow subscription type sends a notification when a specified channel receives a follow. No authorization required.
type ChannelHypeTrainBeginEvent ¶
type ChannelHypeTrainBeginEvent struct { BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Total int `json:"total"` Progress int `json:"progress"` Goal int `json:"goal"` TopContributions []HypeTrainContributor `json:"top_contributions"` LastContribution HypeTrainContributor `json:"last_contribution"` StartedAt time.Time `json:"started_at"` ExpiresAt time.Time `json:"expires_at"` }
ChannelHypeTrainBeginEvent represents a channel.hype_train.begin event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelhype_trainbegin` The channel.hype_train.begin subscription type sends a notification when a hype train begins on the specified channel. In addition to a channel.hype_train.begin event, one channel.hype_train.progress event will be sent for each contribution that caused the hype train to begin. EventSub does not make strong assurances about the order of message delivery, so it is possible to receive channel.hype_train.progress notifications before you receive the corresponding channel.hype_train.begin notification. After the hype train begins, any additional cheers or subscriptions on the channel will cause channel.hype_train.progress notifications to be sent. When the hype train is over, channel.hype_train.end is emitted. Must have channel:read:hype_train scope.
type ChannelHypeTrainEndEvent ¶
type ChannelHypeTrainEndEvent struct { BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Level int `json:"level"` Total int `json:"total"` TopContributions []HypeTrainContributor `json:"top_contributions"` StartedAt time.Time `json:"started_at"` ExpiresAt time.Time `json:"expires_at"` CooldownEndsAt time.Time `json:"cooldown_ends_at"` }
ChannelHypeTrainEndEvent represents a channel.hype_train.end event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelhype_trainend` The channel.hype_train.end subscription type sends a notification when a hype train ends on the specified channel. Must have channel:read:hype_train scope.
type ChannelHypeTrainProgressEvent ¶
type ChannelHypeTrainProgressEvent struct { BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Level int `json:"level"` Total int `json:"total"` Progress int `json:"progress"` Goal int `json:"goal"` TopContributions []HypeTrainContributor `json:"top_contributions"` LastContribution HypeTrainContributor `json:"last_contribution"` StartedAt time.Time `json:"started_at"` ExpiresAt time.Time `json:"expires_at"` }
ChannelHypeTrainProgressEvent represents a channel.hype_train.progress event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelhype_trainprogress` The channel.hype_train.progress subscription type sends a notification when a hype train makes progress on the specified channel. When a hype train starts, one channel.hype_train.progress event will be sent for each contribution that caused the hype train to begin (in addition to the channel.hype_train.begin event). EventSub does not make strong assurances about the order of message delivery, so it is possible to receive channel.hype_train.progress before you receive the corresponding channel.hype_train.begin. After a hype train begins, any additional cheers or subscriptions on the channel will cause channel.hype_train.progress notifications to be sent. When the hype train is over, channel.hype_train.end is emitted. Must have channel:read:hype_train scope.
type ChannelPointsCustomRewardAddEvent ¶
type ChannelPointsCustomRewardAddEvent struct { ID string `json:"id"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` IsEnabled bool `json:"is_enabled"` IsPaused bool `json:"is_paused"` IsInStock bool `json:"is_in_stock"` Title string `json:"title"` Cost int `json:"cost"` Prompt string `json:"prompt"` IsUserInputRequired bool `json:"is_user_input_required"` ShouldRedemptionsSkipRequestQueue bool `json:"should_redemptions_skip_request_queue"` CooldownExpires time.Time `json:"cooldown_expires_at"` RedemptionsRedeemedCurrentStream int `json:"redemptions_redeemed_current_stream"` MaxPerStream PointsRewardLimit `json:"max_per_stream"` MaxPerUserPerStream PointsRewardLimit `json:"max_per_user_per_stream"` GlobalCooldown PointsRewardCooldown `json:"global_cooldown"` BackgroundColour string `json:"background_color"` Image map[string]string `json:"image"` DefaultImage map[string]string `json:"default_image"` }
ChannelPointsCustomRewardAddEvent represents a channel.channel_points_custom_reward.add event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelchannel_points_custom_rewardadd` The channel.channel_points_custom_reward.add subscription type sends a notification when a custom channel points reward has been created for the specified channel. Must have channel:read:redemptions or channel:manage:redemptions scope.
type ChannelPointsCustomRewardRedemptionAddEvent ¶
type ChannelPointsCustomRewardRedemptionAddEvent struct { ID string `json:"id"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` UserUID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` UserInput string `json:"user_input"` Status string `json:"status"` Reward PointsCustomReward `json:"reward"` RedeemedAt time.Time `json:"redeemed_at"` }
ChannelPointsCustomRewardRedemptionAddEvent represents a channel.channel_points_custom_reward_redemption.add event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelchannel_points_custom_reward_redemptionadd` The channel.channel_points_custom_reward_redemption.add subscription type sends a notification when a viewer has redeemed a custom channel points reward on the specified channel. Must have channel:read:redemptions or channel:manage:redemptions scope.
type ChannelPointsCustomRewardRedemptionUpdateEvent ¶
type ChannelPointsCustomRewardRedemptionUpdateEvent struct { ID string `json:"id"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` UserUID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` UserInput string `json:"user_input"` Status string `json:"status"` Reward PointsCustomReward `json:"reward"` RedeemedAt time.Time `json:"redeemed_at"` }
ChannelPointsCustomRewardRedemptionUpdateEvent represents a channel.channel_points_custom_reward_redemption.update event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelchannel_points_custom_reward_redemptionupdate` The channel.channel_points_custom_reward_redemption.update subscription type sends a notification when a redemption of a channel points custom reward has been updated for the specified channel. Must have channel:read:redemptions or channel:manage:redemptions scope.
type ChannelPointsCustomRewardRemoveEvent ¶
type ChannelPointsCustomRewardRemoveEvent struct { ID string `json:"id"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` IsEnabled bool `json:"is_enabled"` IsPaused bool `json:"is_paused"` IsInStock bool `json:"is_in_stock"` Title string `json:"title"` Cost int `json:"cost"` Prompt string `json:"prompt"` IsUserInputRequired bool `json:"is_user_input_required"` ShouldRedemptionsSkipRequestQueue bool `json:"should_redemptions_skip_request_queue"` CooldownExpires time.Time `json:"cooldown_expires_at"` RedemptionsRedeemedCurrentStream int `json:"redemptions_redeemed_current_stream"` MaxPerStream PointsRewardLimit `json:"max_per_stream"` MaxPerUserPerStream PointsRewardLimit `json:"max_per_user_per_stream"` GlobalCooldown PointsRewardCooldown `json:"global_cooldown"` BackgroundColour string `json:"background_color"` Image map[string]string `json:"image"` DefaultImage map[string]string `json:"default_image"` }
ChannelPointsCustomRewardRemoveEvent represents a channel.channel_points_custom_reward.remove event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelchannel_points_custom_rewardremove` The channel.channel_points_custom_reward.remove subscription type sends a notification when a custom channel points reward has been removed from the specified channel. Must have channel:read:redemptions or channel:manage:redemptions scope.
type ChannelPointsCustomRewardUpdateEvent ¶
type ChannelPointsCustomRewardUpdateEvent struct { ID string `json:"id"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` IsEnabled bool `json:"is_enabled"` IsPaused bool `json:"is_paused"` IsInStock bool `json:"is_in_stock"` Title string `json:"title"` Cost int `json:"cost"` Prompt string `json:"prompt"` IsUserInputRequired bool `json:"is_user_input_required"` ShouldRedemptionsSkipRequestQueue bool `json:"should_redemptions_skip_request_queue"` CooldownExpires time.Time `json:"cooldown_expires_at"` RedemptionsRedeemedCurrentStream int `json:"redemptions_redeemed_current_stream"` MaxPerStream PointsRewardLimit `json:"max_per_stream"` MaxPerUserPerStream PointsRewardLimit `json:"max_per_user_per_stream"` GlobalCooldown PointsRewardCooldown `json:"global_cooldown"` BackgroundColour string `json:"background_color"` Image map[string]string `json:"image"` DefaultImage map[string]string `json:"default_image"` }
ChannelPointsCustomRewardUpdateEvent represents a channel.channel_points_custom_reward.update event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelchannel_points_custom_rewardupdate` The channel.channel_points_custom_reward.update subscription type sends a notification when a custom channel points reward has been updated for the specified channel. Must have channel:read:redemptions or channel:manage:redemptions scope.
type ChannelRaidEvent ¶
type ChannelRaidEvent struct { FromBroadcasterUID string `json:"from_broadcaster_user_id"` FromBroadcasterUserLogin string `json:"from_broadcaster_user_login"` FromBroadcasterUserName string `json:"from_broadcaster_user_name"` ToBroadcasterUID string `json:"to_broadcaster_user_id"` ToBroadcasterUserLogin string `json:"to_broadcaster_user_login"` ToBroadcasterUserName string `json:"to_broadcaster_user_name"` Viewers int `json:"viewers"` }
ChannelRaidEvent represents a channel.raid event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelraid-beta` The channel.raid subscription type sends a notification when a broadcaster raids another broadcaster’s channel. No authorization required.
type ChannelSubscribeEvent ¶
type ChannelSubscribeEvent struct { UserUID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Tier string `json:"tier"` IsGift bool `json:"is_gift"` }
ChannelSubscribeEvent represents a channel.subscribe event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelsubscribe` The channel.subscribe subscription type sends a notification when a specified channel receives a subscriber. This does not include resubscribes. Must have channel:read:subscriptions scope.
type ChannelUnbanEvent ¶
type ChannelUnbanEvent struct { UserUID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` ModeratorUID string `json:"moderator_user_id"` ModeratorUserLogin string `json:"moderator_user_login"` ModeratorUserName string `json:"moderator_user_name"` }
ChannelUnbanEvent represents a channel.unban event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelunban` The channel.unban subscription type sends a notification when a viewer is unbanned from the specified channel. Must have channel:moderate scope.
type ChannelUpdateEvent ¶
type ChannelUpdateEvent struct { BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Language string `json:"lanugage"` CategoryID string `json:"category_id"` CategoryName string `json:"category_name"` IsMature bool `json:"is_mature"` }
ChannelUpdateEvent represents a channel.update event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#channelupdate` The channel.update subscription type sends notifications when a broadcaster updates the category, title, mature flag, or broadcast language for their channel. No authorization required.
type ConditionChannelBan ¶
type ConditionChannelBan struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelCheer ¶
type ConditionChannelCheer struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelFollow ¶
type ConditionChannelFollow struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelHypeTrainBegin ¶
type ConditionChannelHypeTrainBegin struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelHypeTrainEnd ¶
type ConditionChannelHypeTrainEnd struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelHypeTrainProgress ¶
type ConditionChannelHypeTrainProgress struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelPointsCustomRewardAdd ¶
type ConditionChannelPointsCustomRewardAdd struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelRaid ¶
type ConditionChannelSubscribe ¶
type ConditionChannelSubscribe struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelUnban ¶
type ConditionChannelUnban struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionChannelUpdate ¶
type ConditionChannelUpdate struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionStreamOffline ¶
type ConditionStreamOffline struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionStreamOnline ¶
type ConditionStreamOnline struct {
BroadcasterUID string `json:"broadcaster_user_id"`
}
type ConditionUserAuthorizationRevoke ¶
type ConditionUserAuthorizationRevoke struct {
ClientID string `json:"client_id"`
}
type ConditionUserUpdate ¶
type ConditionUserUpdate struct {
UserID string `json:"user_id"`
}
type EventNotificationMessage ¶
type EventNotificationMessage struct { Subscription Subscription `json:"subscription"` Event interface{} `json:"event"` }
type HypeTrainContributor ¶
type PointsCustomReward ¶
type PointsRewardCooldown ¶
type PointsRewardLimit ¶
type StreamOfflineEvent ¶
type StreamOfflineEvent struct { BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` }
StreamOfflineEvent represents a stream.offline event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#streamoffline` The stream.offline subscription type sends a notification when the specified broadcaster stops a stream. No authorization required.
type StreamOnlineEvent ¶
type StreamOnlineEvent struct { ID string `json:"id"` BroadcasterUID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Type string `json:"type"` StartedAt time.Time `json:"started_at"` }
StreamOnlineEvent represents a stream.online event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#streamonline` The stream.online subscription type sends a notification when the specified broadcaster starts a stream. No authorization required.
type Subscription ¶
type SubscriptionRequestStatus ¶
type SubscriptionRequestStatus struct { Data []Subscription `json:"data"` Total int `json:"total"` Limit int `json:"limit"` }
type TransportOpts ¶
type UserAuthorizationRevokeEvent ¶
type UserAuthorizationRevokeEvent struct { ClientID string `json:"client_id"` UserUID string `json:"user_id"` UserLogin string `json:"user_login,omitempty"` UserName string `json:"user_name,omitempty"` }
UserAuthorizationRevokeEvent represents a user.authorization.revoke event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#userauthorizationrevoke` The user.authorization.revoke subscription type sends a notification when a user’s authorization has been revoked for your client id. Use this webhook to meet government requirements for handling user data, such as GDPR, LGPD, or CCPA. Provided client_id must match the client id in the application access token.
type UserUpdateEvent ¶
type UserUpdateEvent struct { UserUID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` Email string `json:"email,omitempty"` Description string `json:"description"` }
UserUpdateEvent represents a user.update event `https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types#userupdate` The user.update subscription type sends a notification when user updates their account. No authorization required. If you have the user:read:email scope, the notification will include email field.
type VerificationMessage ¶
type VerificationMessage struct { Challenge string `json:"challenge"` Subscription Subscription `json:"subscription"` }