9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NimでDiscordBotを作る

Last updated at Posted at 2018-04-05

#環境

環境

Nim Compiler Version 0.18.0 [Windows: amd64]
Copyright (c) 2006-2018 by Andreas Rumpf

#Discord側の準備
Discord developersに行きNewAppスクリーンショット 2018-04-05 11.12.05.png
名前を入力しCreate App
スクリーンショット 2018-04-05 11.15.01.png
少し下にスクロールし Crearte a Bot User
スクリーンショット 2018-04-05 11.15.23.png
Token:click to revealをクリック
Token:************************
をメモしておく
スクリーンショット 2018-04-05 11.20.38.png
Generate OAuth2 URLをクリック
スクリーンショット 2018-04-05 11.22.29.png
Botを選択し COPY
スクリーンショット 2018-04-05 11.23.52.png
COPYしたURLを開き自分のサーバーを選択 認証しましたとでれば成功です
スクリーンショット 2018-04-05 11.25.47.png

#Nim側の準備
使用するライブラリ
ライブラリのインストール

nimble install discordnim

pingとメッセージを送るとpongと返ってくるサンプルコード

import asyncdispatch, discordnim, strutils

proc messageCreate(s: Shard, m: MessageCreate) =
    if s.cache.me.id == m.author.id: return
#自分自身(Bot)だったら反応しない
    if m.content == "ping":
#メッセージがpingだったら
        asyncCheck s.channelMessageSend(m.channel_id, "pong")
#送られてきたチャンネルにpongと送り返す
        
let d = newDiscordClient("Bot token")
#先程メモしたtokenをBot の後ろにコピーペースト
let s = d.addShard()
proc endSession() {.noconv.} =
    waitFor d.disconnect()

setControlCHook(endSession)

d.addHandler(EventType.message_create, messageCreate)
waitfor s.startSession()

実行する場合は -d:ssl を付けてください
nim c -d:ssl -r fileName

スクリーンショット 2018-04-05 11.35.57.png

#おしまい
サンプルコードは
こちらやインストールしたライブラリのexamplesフォルダにあります
情報がほとんど無いのでソースコードを見るのが一番だと思います

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?