Discord API

This is a Ruby library for the Discord HTTP API. Currently in development

Installation

Add this line to your application's Gemfile:

gem "discord_api"

Usage

Authentication

Firstly you'll need to set either a user token or bot token. Some endpoints are only accssible with a bot token.

# Set a user token
@client = Discord::Client.new(user_access_token: "")

# Or set a bot token
@client = Discord::Client.new(bot_access_token: "")

Users

# Get the current user
# Required scope: identify
# Required scopes if you want the user's email: identify email
@client.users.me

# Get the user's guilds
# Required scope: guilds
@client.users.guilds

Channels

These endpoints are only accessible using a bot token.

# Retrieve a Channel
@client.channels.retrieve(id: 123123)

# Update a Channel's details
# https://discord.com/developers/docs/resources/channel#modify-channel
@client.channels.update(id: 123123, name: "new-channel-name")

Messages

These endpoints are only accessible using a bot token.

# List messages for a channel
@client.messages.list(channel_id: 123123)

# Get a message
@client.messages.retrieve(channel_id: 123123, message_id: 123123)

# Create a message
# https://discord.com/developers/docs/resources/channel#create-message
@client.messages.create(channel_id: 123123, content: "Hello World")

# Update a message
# https://discord.com/developers/docs/resources/channel#edit-message
@client.messages.update(channel_id: 123123, message_id: 123123, content: "Hello World")

# Delete a message
@client.messages.delete(channel_id: 123123, message_id: 123123)

# Bulk delete messages
@client.messages.bulk_delete(channel_id: 123123, ids: [123123, 321321])

Guilds/Servers

These endpoints are only accessible using a bot token.

# Retrieve a Guild's details
@client.guilds.retrieve(id: 123123)

# Update a Guild's details
# https://discord.com/developers/docs/resources/guild#modify-guild
@client.guilds.update(id: 123123, name: "new-guild-name")

# Retrieve a list of a Guild's channels
@client.guilds.channels(guild: 123123)

# Create a Guild channel
# https://discord.com/developers/docs/resources/guild#create-guild-channel
@client.guilds.create_channel(guild: 123123, name: "new-channel-name")

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/deanpcmad/discord_api.

License

The gem is available as open source under the terms of the MIT License.