Skip to content

discord-openapi-clients/go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go API client for discord

Preview of the Discord v10 HTTP API specification. See https://discord.com/developers/docs for more details.

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: 10
  • Package version: 1.0.0
  • Generator version: 7.8.0-SNAPSHOT
  • Build package: org.openapitools.codegen.languages.GoClientCodegen

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/oauth2
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import discord "github.com/discord-openapi-clients/go/v1"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value discord.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), discord.ContextServerIndex, 1)

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value discord.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), discord.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

Each operation can use different server URL defined using OperationServers map in the Configuration. An operation is uniquely identified by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using discord.ContextOperationServerIndices and discord.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), discord.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), discord.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Documentation for API Endpoints

All URIs are relative to https://discord.com/api/v10

Class Method HTTP request Description
DefaultAPI AddGroupDmUser Put /channels/{channel_id}/recipients/{user_id}
DefaultAPI AddGuildMember Put /guilds/{guild_id}/members/{user_id}
DefaultAPI AddGuildMemberRole Put /guilds/{guild_id}/members/{user_id}/roles/{role_id}
DefaultAPI AddMyMessageReaction Put /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}/@me
DefaultAPI AddThreadMember Put /channels/{channel_id}/thread-members/{user_id}
DefaultAPI BanUserFromGuild Put /guilds/{guild_id}/bans/{user_id}
DefaultAPI BulkBanUsersFromGuild Post /guilds/{guild_id}/bulk-ban
DefaultAPI BulkDeleteMessages Post /channels/{channel_id}/messages/bulk-delete
DefaultAPI BulkSetApplicationCommands Put /applications/{application_id}/commands
DefaultAPI BulkSetGuildApplicationCommands Put /applications/{application_id}/guilds/{guild_id}/commands
DefaultAPI BulkUpdateGuildChannels Patch /guilds/{guild_id}/channels
DefaultAPI BulkUpdateGuildRoles Patch /guilds/{guild_id}/roles
DefaultAPI ConsumeEntitlement Post /applications/{application_id}/entitlements/{entitlement_id}/consume
DefaultAPI CreateApplicationCommand Post /applications/{application_id}/commands
DefaultAPI CreateApplicationEmoji Post /applications/{application_id}/emojis
DefaultAPI CreateAutoModerationRule Post /guilds/{guild_id}/auto-moderation/rules
DefaultAPI CreateChannelInvite Post /channels/{channel_id}/invites
DefaultAPI CreateDm Post /users/@me/channels
DefaultAPI CreateEntitlement Post /applications/{application_id}/entitlements
DefaultAPI CreateGuild Post /guilds
DefaultAPI CreateGuildApplicationCommand Post /applications/{application_id}/guilds/{guild_id}/commands
DefaultAPI CreateGuildChannel Post /guilds/{guild_id}/channels
DefaultAPI CreateGuildEmoji Post /guilds/{guild_id}/emojis
DefaultAPI CreateGuildFromTemplate Post /guilds/templates/{code}
DefaultAPI CreateGuildRole Post /guilds/{guild_id}/roles
DefaultAPI CreateGuildScheduledEvent Post /guilds/{guild_id}/scheduled-events
DefaultAPI CreateGuildSoundboardSound Post /guilds/{guild_id}/soundboard-sounds
DefaultAPI CreateGuildSticker Post /guilds/{guild_id}/stickers
DefaultAPI CreateGuildTemplate Post /guilds/{guild_id}/templates
DefaultAPI CreateInteractionResponse Post /interactions/{interaction_id}/{interaction_token}/callback
DefaultAPI CreateMessage Post /channels/{channel_id}/messages
DefaultAPI CreateStageInstance Post /stage-instances
DefaultAPI CreateThread Post /channels/{channel_id}/threads
DefaultAPI CreateThreadFromMessage Post /channels/{channel_id}/messages/{message_id}/threads
DefaultAPI CreateWebhook Post /channels/{channel_id}/webhooks
DefaultAPI CrosspostMessage Post /channels/{channel_id}/messages/{message_id}/crosspost
DefaultAPI DeleteAllMessageReactions Delete /channels/{channel_id}/messages/{message_id}/reactions
DefaultAPI DeleteAllMessageReactionsByEmoji Delete /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}
DefaultAPI DeleteApplicationCommand Delete /applications/{application_id}/commands/{command_id}
DefaultAPI DeleteApplicationEmoji Delete /applications/{application_id}/emojis/{emoji_id}
DefaultAPI DeleteApplicationUserRoleConnection Delete /users/@me/applications/{application_id}/role-connection
DefaultAPI DeleteAutoModerationRule Delete /guilds/{guild_id}/auto-moderation/rules/{rule_id}
DefaultAPI DeleteChannel Delete /channels/{channel_id}
DefaultAPI DeleteChannelPermissionOverwrite Delete /channels/{channel_id}/permissions/{overwrite_id}
DefaultAPI DeleteEntitlement Delete /applications/{application_id}/entitlements/{entitlement_id}
DefaultAPI DeleteGroupDmUser Delete /channels/{channel_id}/recipients/{user_id}
DefaultAPI DeleteGuild Delete /guilds/{guild_id}
DefaultAPI DeleteGuildApplicationCommand Delete /applications/{application_id}/guilds/{guild_id}/commands/{command_id}
DefaultAPI DeleteGuildEmoji Delete /guilds/{guild_id}/emojis/{emoji_id}
DefaultAPI DeleteGuildIntegration Delete /guilds/{guild_id}/integrations/{integration_id}
DefaultAPI DeleteGuildMember Delete /guilds/{guild_id}/members/{user_id}
DefaultAPI DeleteGuildMemberRole Delete /guilds/{guild_id}/members/{user_id}/roles/{role_id}
DefaultAPI DeleteGuildRole Delete /guilds/{guild_id}/roles/{role_id}
DefaultAPI DeleteGuildScheduledEvent Delete /guilds/{guild_id}/scheduled-events/{guild_scheduled_event_id}
DefaultAPI DeleteGuildSoundboardSound Delete /guilds/{guild_id}/soundboard-sounds/{sound_id}
DefaultAPI DeleteGuildSticker Delete /guilds/{guild_id}/stickers/{sticker_id}
DefaultAPI DeleteGuildTemplate Delete /guilds/{guild_id}/templates/{code}
DefaultAPI DeleteMessage Delete /channels/{channel_id}/messages/{message_id}
DefaultAPI DeleteMyMessageReaction Delete /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}/@me
DefaultAPI DeleteOriginalWebhookMessage Delete /webhooks/{webhook_id}/{webhook_token}/messages/@original
DefaultAPI DeleteStageInstance Delete /stage-instances/{channel_id}
DefaultAPI DeleteThreadMember Delete /channels/{channel_id}/thread-members/{user_id}
DefaultAPI DeleteUserMessageReaction Delete /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}/{user_id}
DefaultAPI DeleteWebhook Delete /webhooks/{webhook_id}
DefaultAPI DeleteWebhookByToken Delete /webhooks/{webhook_id}/{webhook_token}
DefaultAPI DeleteWebhookMessage Delete /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}
DefaultAPI ExecuteGithubCompatibleWebhook Post /webhooks/{webhook_id}/{webhook_token}/github
DefaultAPI ExecuteSlackCompatibleWebhook Post /webhooks/{webhook_id}/{webhook_token}/slack
DefaultAPI ExecuteWebhook Post /webhooks/{webhook_id}/{webhook_token}
DefaultAPI FollowChannel Post /channels/{channel_id}/followers
DefaultAPI GetActiveGuildThreads Get /guilds/{guild_id}/threads/active
DefaultAPI GetAnswerVoters Get /channels/{channel_id}/polls/{message_id}/answers/{answer_id}
DefaultAPI GetApplication Get /applications/{application_id}
DefaultAPI GetApplicationCommand Get /applications/{application_id}/commands/{command_id}
DefaultAPI GetApplicationEmoji Get /applications/{application_id}/emojis/{emoji_id}
DefaultAPI GetApplicationRoleConnectionsMetadata Get /applications/{application_id}/role-connections/metadata
DefaultAPI GetApplicationUserRoleConnection Get /users/@me/applications/{application_id}/role-connection
DefaultAPI GetAutoModerationRule Get /guilds/{guild_id}/auto-moderation/rules/{rule_id}
DefaultAPI GetBotGateway Get /gateway/bot
DefaultAPI GetChannel Get /channels/{channel_id}
DefaultAPI GetEntitlement Get /applications/{application_id}/entitlements/{entitlement_id}
DefaultAPI GetEntitlements Get /applications/{application_id}/entitlements
DefaultAPI GetGateway Get /gateway
DefaultAPI GetGuild Get /guilds/{guild_id}
DefaultAPI GetGuildApplicationCommand Get /applications/{application_id}/guilds/{guild_id}/commands/{command_id}
DefaultAPI GetGuildApplicationCommandPermissions Get /applications/{application_id}/guilds/{guild_id}/commands/{command_id}/permissions
DefaultAPI GetGuildBan Get /guilds/{guild_id}/bans/{user_id}
DefaultAPI GetGuildEmoji Get /guilds/{guild_id}/emojis/{emoji_id}
DefaultAPI GetGuildMember Get /guilds/{guild_id}/members/{user_id}
DefaultAPI GetGuildNewMemberWelcome Get /guilds/{guild_id}/new-member-welcome
DefaultAPI GetGuildPreview Get /guilds/{guild_id}/preview
DefaultAPI GetGuildScheduledEvent Get /guilds/{guild_id}/scheduled-events/{guild_scheduled_event_id}
DefaultAPI GetGuildSoundboardSound Get /guilds/{guild_id}/soundboard-sounds/{sound_id}
DefaultAPI GetGuildSticker Get /guilds/{guild_id}/stickers/{sticker_id}
DefaultAPI GetGuildTemplate Get /guilds/templates/{code}
DefaultAPI GetGuildVanityUrl Get /guilds/{guild_id}/vanity-url
DefaultAPI GetGuildWebhooks Get /guilds/{guild_id}/webhooks
DefaultAPI GetGuildWelcomeScreen Get /guilds/{guild_id}/welcome-screen
DefaultAPI GetGuildWidget Get /guilds/{guild_id}/widget.json
DefaultAPI GetGuildWidgetPng Get /guilds/{guild_id}/widget.png
DefaultAPI GetGuildWidgetSettings Get /guilds/{guild_id}/widget
DefaultAPI GetGuildsOnboarding Get /guilds/{guild_id}/onboarding
DefaultAPI GetMessage Get /channels/{channel_id}/messages/{message_id}
DefaultAPI GetMyApplication Get /applications/@me
DefaultAPI GetMyGuildMember Get /users/@me/guilds/{guild_id}/member
DefaultAPI GetMyOauth2Application Get /oauth2/applications/@me
DefaultAPI GetMyOauth2Authorization Get /oauth2/@me
DefaultAPI GetMyUser Get /users/@me
DefaultAPI GetOriginalWebhookMessage Get /webhooks/{webhook_id}/{webhook_token}/messages/@original
DefaultAPI GetPublicKeys Get /oauth2/keys
DefaultAPI GetSelfVoiceState Get /guilds/{guild_id}/voice-states/@me
DefaultAPI GetSoundboardDefaultSounds Get /soundboard-default-sounds
DefaultAPI GetStageInstance Get /stage-instances/{channel_id}
DefaultAPI GetSticker Get /stickers/{sticker_id}
DefaultAPI GetThreadMember Get /channels/{channel_id}/thread-members/{user_id}
DefaultAPI GetUser Get /users/{user_id}
DefaultAPI GetVoiceState Get /guilds/{guild_id}/voice-states/{user_id}
DefaultAPI GetWebhook Get /webhooks/{webhook_id}
DefaultAPI GetWebhookByToken Get /webhooks/{webhook_id}/{webhook_token}
DefaultAPI GetWebhookMessage Get /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}
DefaultAPI InviteResolve Get /invites/{code}
DefaultAPI InviteRevoke Delete /invites/{code}
DefaultAPI JoinThread Put /channels/{channel_id}/thread-members/@me
DefaultAPI LeaveGuild Delete /users/@me/guilds/{guild_id}
DefaultAPI LeaveThread Delete /channels/{channel_id}/thread-members/@me
DefaultAPI ListApplicationCommands Get /applications/{application_id}/commands
DefaultAPI ListApplicationEmojis Get /applications/{application_id}/emojis
DefaultAPI ListAutoModerationRules Get /guilds/{guild_id}/auto-moderation/rules
DefaultAPI ListChannelInvites Get /channels/{channel_id}/invites
DefaultAPI ListChannelWebhooks Get /channels/{channel_id}/webhooks
DefaultAPI ListGuildApplicationCommandPermissions Get /applications/{application_id}/guilds/{guild_id}/commands/permissions
DefaultAPI ListGuildApplicationCommands Get /applications/{application_id}/guilds/{guild_id}/commands
DefaultAPI ListGuildAuditLogEntries Get /guilds/{guild_id}/audit-logs
DefaultAPI ListGuildBans Get /guilds/{guild_id}/bans
DefaultAPI ListGuildChannels Get /guilds/{guild_id}/channels
DefaultAPI ListGuildEmojis Get /guilds/{guild_id}/emojis
DefaultAPI ListGuildIntegrations Get /guilds/{guild_id}/integrations
DefaultAPI ListGuildInvites Get /guilds/{guild_id}/invites
DefaultAPI ListGuildMembers Get /guilds/{guild_id}/members
DefaultAPI ListGuildRoles Get /guilds/{guild_id}/roles
DefaultAPI ListGuildScheduledEventUsers Get /guilds/{guild_id}/scheduled-events/{guild_scheduled_event_id}/users
DefaultAPI ListGuildScheduledEvents Get /guilds/{guild_id}/scheduled-events
DefaultAPI ListGuildSoundboardSounds Get /guilds/{guild_id}/soundboard-sounds
DefaultAPI ListGuildStickers Get /guilds/{guild_id}/stickers
DefaultAPI ListGuildTemplates Get /guilds/{guild_id}/templates
DefaultAPI ListGuildVoiceRegions Get /guilds/{guild_id}/regions
DefaultAPI ListMessageReactionsByEmoji Get /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}
DefaultAPI ListMessages Get /channels/{channel_id}/messages
DefaultAPI ListMyConnections Get /users/@me/connections
DefaultAPI ListMyGuilds Get /users/@me/guilds
DefaultAPI ListMyPrivateArchivedThreads Get /channels/{channel_id}/users/@me/threads/archived/private
DefaultAPI ListPinnedMessages Get /channels/{channel_id}/pins
DefaultAPI ListPrivateArchivedThreads Get /channels/{channel_id}/threads/archived/private
DefaultAPI ListPublicArchivedThreads Get /channels/{channel_id}/threads/archived/public
DefaultAPI ListStickerPacks Get /sticker-packs
DefaultAPI ListThreadMembers Get /channels/{channel_id}/thread-members
DefaultAPI ListVoiceRegions Get /voice/regions
DefaultAPI PinMessage Put /channels/{channel_id}/pins/{message_id}
DefaultAPI PollExpire Post /channels/{channel_id}/polls/{message_id}/expire
DefaultAPI PreviewPruneGuild Get /guilds/{guild_id}/prune
DefaultAPI PruneGuild Post /guilds/{guild_id}/prune
DefaultAPI PutGuildsOnboarding Put /guilds/{guild_id}/onboarding
DefaultAPI SearchGuildMembers Get /guilds/{guild_id}/members/search
DefaultAPI SetChannelPermissionOverwrite Put /channels/{channel_id}/permissions/{overwrite_id}
DefaultAPI SetGuildApplicationCommandPermissions Put /applications/{application_id}/guilds/{guild_id}/commands/{command_id}/permissions
DefaultAPI SetGuildMfaLevel Post /guilds/{guild_id}/mfa
DefaultAPI SyncGuildTemplate Put /guilds/{guild_id}/templates/{code}
DefaultAPI TriggerTypingIndicator Post /channels/{channel_id}/typing
DefaultAPI UnbanUserFromGuild Delete /guilds/{guild_id}/bans/{user_id}
DefaultAPI UnpinMessage Delete /channels/{channel_id}/pins/{message_id}
DefaultAPI UpdateApplication Patch /applications/{application_id}
DefaultAPI UpdateApplicationCommand Patch /applications/{application_id}/commands/{command_id}
DefaultAPI UpdateApplicationEmoji Patch /applications/{application_id}/emojis/{emoji_id}
DefaultAPI UpdateApplicationRoleConnectionsMetadata Put /applications/{application_id}/role-connections/metadata
DefaultAPI UpdateApplicationUserRoleConnection Put /users/@me/applications/{application_id}/role-connection
DefaultAPI UpdateAutoModerationRule Patch /guilds/{guild_id}/auto-moderation/rules/{rule_id}
DefaultAPI UpdateChannel Patch /channels/{channel_id}
DefaultAPI UpdateGuild Patch /guilds/{guild_id}
DefaultAPI UpdateGuildApplicationCommand Patch /applications/{application_id}/guilds/{guild_id}/commands/{command_id}
DefaultAPI UpdateGuildEmoji Patch /guilds/{guild_id}/emojis/{emoji_id}
DefaultAPI UpdateGuildMember Patch /guilds/{guild_id}/members/{user_id}
DefaultAPI UpdateGuildRole Patch /guilds/{guild_id}/roles/{role_id}
DefaultAPI UpdateGuildScheduledEvent Patch /guilds/{guild_id}/scheduled-events/{guild_scheduled_event_id}
DefaultAPI UpdateGuildSoundboardSound Patch /guilds/{guild_id}/soundboard-sounds/{sound_id}
DefaultAPI UpdateGuildSticker Patch /guilds/{guild_id}/stickers/{sticker_id}
DefaultAPI UpdateGuildTemplate Patch /guilds/{guild_id}/templates/{code}
DefaultAPI UpdateGuildWelcomeScreen Patch /guilds/{guild_id}/welcome-screen
DefaultAPI UpdateGuildWidgetSettings Patch /guilds/{guild_id}/widget
DefaultAPI UpdateMessage Patch /channels/{channel_id}/messages/{message_id}
DefaultAPI UpdateMyApplication Patch /applications/@me
DefaultAPI UpdateMyGuildMember Patch /guilds/{guild_id}/members/@me
DefaultAPI UpdateMyUser Patch /users/@me
DefaultAPI UpdateOriginalWebhookMessage Patch /webhooks/{webhook_id}/{webhook_token}/messages/@original
DefaultAPI UpdateSelfVoiceState Patch /guilds/{guild_id}/voice-states/@me
DefaultAPI UpdateStageInstance Patch /stage-instances/{channel_id}
DefaultAPI UpdateVoiceState Patch /guilds/{guild_id}/voice-states/{user_id}
DefaultAPI UpdateWebhook Patch /webhooks/{webhook_id}
DefaultAPI UpdateWebhookByToken Patch /webhooks/{webhook_id}/{webhook_token}
DefaultAPI UpdateWebhookMessage Patch /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}
DefaultAPI UploadApplicationAttachment Post /applications/{application_id}/attachment

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

BotToken

  • Type: API key
  • API key parameter name: Authorization
  • Location: HTTP header

Note, each API key must be added to a map of map[string]APIKey where the key is: Authorization and passed in as the auth context for each request.

Example

auth := context.WithValue(
		context.Background(),
		discord.ContextAPIKeys,
		map[string]discord.APIKey{
			"Authorization": {Key: "API_KEY_STRING"},
		},
	)
r, err := client.Service.Operation(auth, args)

OAuth2

  • Type: OAuth
  • Flow: implicit
  • Authorization URL: discord.com/oauth2/authorize
  • Scopes:
  • activities.read: allows your app to fetch data from a user's "Now Playing/Recently Played" list - requires Discord approval
  • activities.write: allows your app to update a user's activity - requires Discord approval (NOT REQUIRED FOR GAMESDK ACTIVITY MANAGER)
  • applications.builds.read: allows your app to read build data for a user's applications
  • applications.builds.upload: allows your app to upload/update builds for a user's applications - requires Discord approval
  • applications.commands: allows your app to use commands in a guild
  • applications.commands.permissions.update: allows your app to update permissions for its commands in a guild a user has permissions to
  • applications.entitlements: allows your app to read entitlements for a user's applications
  • applications.store.update: allows your app to read and update store data (SKUs, store listings, achievements, etc.) for a user's applications
  • bot: for oauth2 bots, this puts the bot in the user's selected guild by default
  • connections: allows /users/@me/connections to return linked third-party accounts
  • dm_channels.read: allows your app to see information about the user's DMs and group DMs - requires Discord approval
  • email: enables /users/@me to return an email
  • gdm.join: allows your app to join users to a group dm
  • guilds: allows /users/@me/guilds to return basic information about all of a user's guilds
  • guilds.join: allows /guilds/{guild.id}/members/{user.id} to be used for joining users to a guild
  • guilds.members.read: allows /users/@me/guilds/{guild.id}/member to return a user's member information in a guild
  • identify: allows /users/@me without email
  • messages.read: for local rpc server api access, this allows you to read messages from all client channels (otherwise restricted to channels/guilds your app creates)
  • openid: for OpenID Connect, this allows your app to receive user id and basic profile information
  • relationships.read: allows your app to know a user's friends and implicit relationships - requires Discord approval
  • rpc: for local rpc server access, this allows you to control a user's local Discord client - requires Discord approval
  • rpc.activities.write: for local rpc server access, this allows you to update a user's activity - requires Discord approval
  • rpc.notifications.read: for local rpc server access, this allows you to receive notifications pushed out to the user - requires Discord approval
  • rpc.screenshare.read: for local rpc server access, this allows you to read a user's screenshare status- requires Discord approval
  • rpc.screenshare.write: for local rpc server access, this allows you to update a user's screenshare settings- requires Discord approval
  • rpc.video.read: for local rpc server access, this allows you to read a user's video status - requires Discord approval
  • rpc.video.write: for local rpc server access, this allows you to update a user's video settings - requires Discord approval
  • rpc.voice.read: for local rpc server access, this allows you to read a user's voice settings and listen for voice events - requires Discord approval
  • rpc.voice.write: for local rpc server access, this allows you to update a user's voice settings - requires Discord approval
  • voice: allows your app to connect to voice on user's behalf and see all the voice members - requires Discord approval
  • webhook.incoming: this generates a webhook that is returned in the oauth token response for authorization code grants

Example

auth := context.WithValue(context.Background(), discord.ContextAccessToken, "ACCESSTOKENSTRING")
r, err := client.Service.Operation(auth, args)

Or via OAuth2 module to automatically refresh tokens and perform user authentication.

import "golang.org/x/oauth2"

/* Perform OAuth2 round trip request and obtain a token */

tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
auth := context.WithValue(oauth2.NoContext, discord.ContextOAuth2, tokenSource)
r, err := client.Service.Operation(auth, args)

OAuth2

  • Type: OAuth
  • Flow: application
  • Authorization URL:
  • Scopes:
  • activities.read: allows your app to fetch data from a user's "Now Playing/Recently Played" list - requires Discord approval
  • activities.write: allows your app to update a user's activity - requires Discord approval (NOT REQUIRED FOR GAMESDK ACTIVITY MANAGER)
  • applications.builds.read: allows your app to read build data for a user's applications
  • applications.builds.upload: allows your app to upload/update builds for a user's applications - requires Discord approval
  • applications.commands: allows your app to use commands in a guild
  • applications.commands.permissions.update: allows your app to update permissions for its commands in a guild a user has permissions to
  • applications.commands.update: allows your app to update its commands using a Bearer token - client credentials grant only
  • applications.entitlements: allows your app to read entitlements for a user's applications
  • applications.store.update: allows your app to read and update store data (SKUs, store listings, achievements, etc.) for a user's applications
  • bot: for oauth2 bots, this puts the bot in the user's selected guild by default
  • connections: allows /users/@me/connections to return linked third-party accounts
  • dm_channels.read: allows your app to see information about the user's DMs and group DMs - requires Discord approval
  • email: enables /users/@me to return an email
  • gdm.join: allows your app to join users to a group dm
  • guilds: allows /users/@me/guilds to return basic information about all of a user's guilds
  • guilds.join: allows /guilds/{guild.id}/members/{user.id} to be used for joining users to a guild
  • guilds.members.read: allows /users/@me/guilds/{guild.id}/member to return a user's member information in a guild
  • identify: allows /users/@me without email
  • messages.read: for local rpc server api access, this allows you to read messages from all client channels (otherwise restricted to channels/guilds your app creates)
  • openid: for OpenID Connect, this allows your app to receive user id and basic profile information
  • relationships.read: allows your app to know a user's friends and implicit relationships - requires Discord approval
  • rpc: for local rpc server access, this allows you to control a user's local Discord client - requires Discord approval
  • rpc.activities.write: for local rpc server access, this allows you to update a user's activity - requires Discord approval
  • rpc.notifications.read: for local rpc server access, this allows you to receive notifications pushed out to the user - requires Discord approval
  • rpc.screenshare.read: for local rpc server access, this allows you to read a user's screenshare status- requires Discord approval
  • rpc.screenshare.write: for local rpc server access, this allows you to update a user's screenshare settings- requires Discord approval
  • rpc.video.read: for local rpc server access, this allows you to read a user's video status - requires Discord approval
  • rpc.video.write: for local rpc server access, this allows you to update a user's video settings - requires Discord approval
  • rpc.voice.read: for local rpc server access, this allows you to read a user's voice settings and listen for voice events - requires Discord approval
  • rpc.voice.write: for local rpc server access, this allows you to update a user's voice settings - requires Discord approval
  • voice: allows your app to connect to voice on user's behalf and see all the voice members - requires Discord approval
  • webhook.incoming: this generates a webhook that is returned in the oauth token response for authorization code grants

Example

auth := context.WithValue(context.Background(), discord.ContextAccessToken, "ACCESSTOKENSTRING")
r, err := client.Service.Operation(auth, args)

Or via OAuth2 module to automatically refresh tokens and perform user authentication.

import "golang.org/x/oauth2"

/* Perform OAuth2 round trip request and obtain a token */

tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
auth := context.WithValue(oauth2.NoContext, discord.ContextOAuth2, tokenSource)
r, err := client.Service.Operation(auth, args)

OAuth2

  • Type: OAuth
  • Flow: accessCode
  • Authorization URL: discord.com/oauth2/authorize
  • Scopes:
  • activities.read: allows your app to fetch data from a user's "Now Playing/Recently Played" list - requires Discord approval
  • activities.write: allows your app to update a user's activity - requires Discord approval (NOT REQUIRED FOR GAMESDK ACTIVITY MANAGER)
  • applications.builds.read: allows your app to read build data for a user's applications
  • applications.builds.upload: allows your app to upload/update builds for a user's applications - requires Discord approval
  • applications.commands: allows your app to use commands in a guild
  • applications.commands.permissions.update: allows your app to update permissions for its commands in a guild a user has permissions to
  • applications.entitlements: allows your app to read entitlements for a user's applications
  • applications.store.update: allows your app to read and update store data (SKUs, store listings, achievements, etc.) for a user's applications
  • bot: for oauth2 bots, this puts the bot in the user's selected guild by default
  • connections: allows /users/@me/connections to return linked third-party accounts
  • dm_channels.read: allows your app to see information about the user's DMs and group DMs - requires Discord approval
  • email: enables /users/@me to return an email
  • gdm.join: allows your app to join users to a group dm
  • guilds: allows /users/@me/guilds to return basic information about all of a user's guilds
  • guilds.join: allows /guilds/{guild.id}/members/{user.id} to be used for joining users to a guild
  • guilds.members.read: allows /users/@me/guilds/{guild.id}/member to return a user's member information in a guild
  • identify: allows /users/@me without email
  • messages.read: for local rpc server api access, this allows you to read messages from all client channels (otherwise restricted to channels/guilds your app creates)
  • openid: for OpenID Connect, this allows your app to receive user id and basic profile information
  • relationships.read: allows your app to know a user's friends and implicit relationships - requires Discord approval
  • role_connections.write: allows your app to update a user's connection and metadata for the app
  • rpc: for local rpc server access, this allows you to control a user's local Discord client - requires Discord approval
  • rpc.activities.write: for local rpc server access, this allows you to update a user's activity - requires Discord approval
  • rpc.notifications.read: for local rpc server access, this allows you to receive notifications pushed out to the user - requires Discord approval
  • rpc.screenshare.read: for local rpc server access, this allows you to read a user's screenshare status- requires Discord approval
  • rpc.screenshare.write: for local rpc server access, this allows you to update a user's screenshare settings- requires Discord approval
  • rpc.video.read: for local rpc server access, this allows you to read a user's video status - requires Discord approval
  • rpc.video.write: for local rpc server access, this allows you to update a user's video settings - requires Discord approval
  • rpc.voice.read: for local rpc server access, this allows you to read a user's voice settings and listen for voice events - requires Discord approval
  • rpc.voice.write: for local rpc server access, this allows you to update a user's voice settings - requires Discord approval
  • voice: allows your app to connect to voice on user's behalf and see all the voice members - requires Discord approval
  • webhook.incoming: this generates a webhook that is returned in the oauth token response for authorization code grants

Example

auth := context.WithValue(context.Background(), discord.ContextAccessToken, "ACCESSTOKENSTRING")
r, err := client.Service.Operation(auth, args)

Or via OAuth2 module to automatically refresh tokens and perform user authentication.

import "golang.org/x/oauth2"

/* Perform OAuth2 round trip request and obtain a token */

tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
auth := context.WithValue(oauth2.NoContext, discord.ContextOAuth2, tokenSource)
r, err := client.Service.Operation(auth, args)

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime

Author

About

Go client generated from discord/discord-api-spec

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages