설명 없음

Bruce Marriner f655167761 Several updates to make library more idiomatic Go 9 년 전
.travis.yml 2af61ea2c5 First commit of Travis CI file 9 년 전
LICENSE bc323b57a1 Initial commit 9 년 전
README.md 1ae6895552 Notice about unfinished library. Notes about goreportcard 9 년 전
channel.go f655167761 Several updates to make library more idiomatic Go 9 년 전
discord.go f4445fb782 Commented out file, as it's not being used now. 9 년 전
guild.go f655167761 Several updates to make library more idiomatic Go 9 년 전
restapi.go f655167761 Several updates to make library more idiomatic Go 9 년 전
session.go f655167761 Several updates to make library more idiomatic Go 9 년 전
structs.go f655167761 Several updates to make library more idiomatic Go 9 년 전
users.go f655167761 Several updates to make library more idiomatic Go 9 년 전
util.go f655167761 Several updates to make library more idiomatic Go 9 년 전
wsapi.go f655167761 Several updates to make library more idiomatic Go 9 년 전

README.md

Discordgo

Discordgo provides a mostly complete low-level Golang interface to the Discord REST and Websocket API.

GoDoc Go report Build Status

Usage Example

package main

import (
	"fmt"
	"time"

	"github.com/bwmarrin/discordgo"
)

func main() {

	var err error

	// Create a new Discord Session and set a handler for the OnMessageCreate
    // event that happens for every new message on any channel
	Session := discordgo.Session{
		OnMessageCreate: messageCreate,
	}

	// Login to the Discord server and store the authentication token
	// inside the Session
	Session.Token, err = Session.Login("coolusername", "cleverpassword")
	if err != nil {
		fmt.Println(err)
		return
	}

	// Open websocket connection
	err = Session.Open()
	if err != nil {
		fmt.Println(err)
	}

	// Do websocket handshake.
	err = Session.Handshake()
	if err != nil {
		fmt.Println(err)
	}

	// Listen for events.
	Session.Listen()
	return
}

func messageCreate(s *discordgo.Session, m discordgo.Message) {
	fmt.Printf("%25d %s %20s > %s\n", m.ChannelId, time.Now().Format(time.Stamp), m.Author.Username, m.Content)
}

Documentation

NOTICE : This library and the Discord API are unfinished. Because of that there may be major changes to library functions, constants, and structures.

  • GoDoc
  • Hand crafted documentation coming soon.

What Works

Low level functions exist for the majority of the REST and Websocket API.

  • Login/Logout
  • Open/Close Websocket and listen for events.
  • Accept/Create/Delete Invites
  • Get User details (Name, ID, Settings, etc)
  • List/Create User Channels (Private Message Channels)
  • List/Create Guilds
  • List/Create Guild Channels
  • List Guild Members
  • Receive/Send Messages to Channels

What's Unfinished

  • Make changes as needed to pass GoLint, GoVet, GoCyclo, etc. (goreportcard.com)
  • Editing User Profile settings
  • Permissions related functions.
  • Functions for Maintenance Status
  • Voice Channel support.

Credits

Special thanks goes to both the below projects who helped me get started with this project. If you're looking for alternative Golang interfaces to Discord please check both of these out.

Other Discord APIs