2018-11-12 15:02:07 -08:00
|
|
|
# DiscordGo
|
2018-08-06 12:47:05 -07:00
|
|
|
|
2022-09-05 12:00:54 -07:00
|
|
|
[](https://pkg.go.dev/github.com/bwmarrin/discordgo) [](https://goreportcard.com/report/github.com/bwmarrin/discordgo) [](https://github.com/bwmarrin/discordgo/actions/workflows/ci.yml) [](https://discord.gg/golang) [](https://discord.com/invite/discord-api)
|
2018-08-06 12:47:05 -07:00
|
|
|
|
2022-03-12 08:06:39 -08:00
|
|
|
<img align="right" alt="DiscordGo logo" src="docs/img/discordgo.svg" width="400">
|
2018-08-06 12:47:05 -07:00
|
|
|
|
|
|
|
DiscordGo is a [Go](https://golang.org/) package that provides low level
|
2020-07-18 08:27:41 -07:00
|
|
|
bindings to the [Discord](https://discord.com/) chat client API. DiscordGo
|
2018-08-06 12:47:05 -07:00
|
|
|
has nearly complete support for all of the Discord API endpoints, websocket
|
|
|
|
interface, and voice interface.
|
|
|
|
|
|
|
|
If you would like to help the DiscordGo package please use
|
2020-07-18 08:27:41 -07:00
|
|
|
[this link](https://discord.com/oauth2/authorize?client_id=173113690092994561&scope=bot)
|
2018-08-06 12:47:05 -07:00
|
|
|
to add the official DiscordGo test bot **dgo** to your server. This provides
|
|
|
|
indispensable help to this project.
|
|
|
|
|
|
|
|
* See [dgVoice](https://github.com/bwmarrin/dgvoice) package for an example of
|
2018-11-12 15:02:07 -08:00
|
|
|
additional voice helper functions and features for DiscordGo.
|
2018-08-06 12:47:05 -07:00
|
|
|
|
|
|
|
* See [dca](https://github.com/bwmarrin/dca) for an **experimental** stand alone
|
|
|
|
tool that wraps `ffmpeg` to create opus encoded audio appropriate for use with
|
2018-11-12 15:02:07 -08:00
|
|
|
Discord (and DiscordGo).
|
2018-08-06 12:47:05 -07:00
|
|
|
|
|
|
|
**For help with this package or general Go discussion, please join the [Discord
|
2022-03-12 08:06:39 -08:00
|
|
|
Gophers](https://discord.gg/golang) chat server.**
|
2018-08-06 12:47:05 -07:00
|
|
|
|
|
|
|
## Getting Started
|
|
|
|
|
|
|
|
### Installing
|
|
|
|
|
|
|
|
This assumes you already have a working Go environment, if not please see
|
|
|
|
[this page](https://golang.org/doc/install) first.
|
|
|
|
|
2020-09-04 14:29:13 -07:00
|
|
|
`go get` *will always pull the latest tagged release from the master branch.*
|
2018-08-06 12:47:05 -07:00
|
|
|
|
|
|
|
```sh
|
|
|
|
go get github.com/bwmarrin/discordgo
|
|
|
|
```
|
|
|
|
|
|
|
|
### Usage
|
|
|
|
|
|
|
|
Import the package into your project.
|
|
|
|
|
|
|
|
```go
|
|
|
|
import "github.com/bwmarrin/discordgo"
|
|
|
|
```
|
|
|
|
|
|
|
|
Construct a new Discord client which can be used to access the variety of
|
|
|
|
Discord API functions and to set callback functions for Discord events.
|
|
|
|
|
|
|
|
```go
|
|
|
|
discord, err := discordgo.New("Bot " + "authentication token")
|
|
|
|
```
|
|
|
|
|
|
|
|
See Documentation and Examples below for more detailed information.
|
|
|
|
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
2020-09-04 14:29:13 -07:00
|
|
|
**NOTICE**: This library and the Discord API are unfinished.
|
2018-08-06 12:47:05 -07:00
|
|
|
Because of that there may be major changes to library in the future.
|
|
|
|
|
|
|
|
The DiscordGo code is fairly well documented at this point and is currently
|
2022-09-05 12:00:54 -07:00
|
|
|
the only documentation available. Go reference (below) presents that information in a nice format.
|
2018-08-06 12:47:05 -07:00
|
|
|
|
2022-09-05 12:00:54 -07:00
|
|
|
- [](https://pkg.go.dev/github.com/bwmarrin/discordgo)
|
2018-08-06 12:47:05 -07:00
|
|
|
- Hand crafted documentation coming eventually.
|
|
|
|
|
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
|
|
Below is a list of examples and other projects using DiscordGo. Please submit
|
2018-11-12 15:02:07 -08:00
|
|
|
an issue if you would like your project added or removed from this list.
|
2018-08-06 12:47:05 -07:00
|
|
|
|
2018-11-12 15:02:07 -08:00
|
|
|
- [DiscordGo Examples](https://github.com/bwmarrin/discordgo/tree/master/examples) - A collection of example programs written with DiscordGo
|
|
|
|
- [Awesome DiscordGo](https://github.com/bwmarrin/discordgo/wiki/Awesome-DiscordGo) - A curated list of high quality projects using DiscordGo
|
2018-08-06 12:47:05 -07:00
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
For help with common problems please reference the
|
|
|
|
[Troubleshooting](https://github.com/bwmarrin/discordgo/wiki/Troubleshooting)
|
|
|
|
section of the project wiki.
|
|
|
|
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
Contributions are very welcomed, however please follow the below guidelines.
|
|
|
|
|
|
|
|
- First open an issue describing the bug or enhancement so it can be
|
|
|
|
discussed.
|
|
|
|
- Try to match current naming conventions as closely as possible.
|
2018-11-12 15:02:07 -08:00
|
|
|
- This package is intended to be a low level direct mapping of the Discord API,
|
2018-08-06 12:47:05 -07:00
|
|
|
so please avoid adding enhancements outside of that scope without first
|
|
|
|
discussing it.
|
2020-09-04 14:29:13 -07:00
|
|
|
- Create a Pull Request with your changes against the master branch.
|
2018-08-06 12:47:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
## List of Discord APIs
|
|
|
|
|
|
|
|
See [this chart](https://abal.moe/Discord/Libraries.html) for a feature
|
|
|
|
comparison and list of other Discord API libraries.
|
|
|
|
|
|
|
|
## Special Thanks
|
|
|
|
|
2018-11-12 15:02:07 -08:00
|
|
|
[Chris Rhodes](https://github.com/iopred) - For the DiscordGo logo and tons of PRs.
|