1. Qiita
  2. 投稿
  3. Electron

ElectronアプリからDiscordのメッセージを作成

  • 4
    いいね
  • 0
    コメント

最近勉強を始めたElectronで作ったアプリからDiscordへ投稿するというのをやったのでメモです。
今回はWebhookを利用してメッセージを送るようにしました。
Webhookを使う場合は、メッセージを送信するサーバーのチャンネル設定権限を持っているか、管理者にWebhookを発行してもらう必要があります。

モジュールのインストール

使用したモジュール
discord.js (GitHub)

$ npm install discord.js --save

Webhookトークンを作成

Discordを起動してメッセージを送信したいテキストチャンネルの横にある設定アイコンをクリック。
一番下の「Webhook」を選び「CreateWebhook」で新しくWebhookを作成します。
Webhookの場合は投稿主はここで作ったBotになるので、適当に投稿主用の名前を設定。
https://discordapp.com/api/webhooks/[トークンID]/[トークン]
というURLが作成されるので、この[トークンID]と[トークン]を使用します。
自分だけがメッセージを送れるようにしたい場合は、このURLやトークンは誰かに知られることがないようにします。アプリの利用者ならあとで入力するとか。

送信するアプリ側の設定

main.jsの基本コードは省略しますが、だいたいこんな感じでメインウィンドウを作成しておきます。

main.js
app.on('ready', () => {
  win = new BrowserWindow({width:800,height:600});
  win.loadURL('file://' + __dirname + '/index.html');
});

メッセージ送信用のjsファイルを作成。

discord_bot.js
// モジュールを読み込み
const Discord = require('discord.js');
// WebhookでClientを作成
const hook = new Discord.WebhookClient('[トークンID]', '[トークン]');
function sendMessage() {
  hook.sendMessage('自動メッセージのテスト');
}

index.htmlで上記のjsファイルを読み込んで送信ボタンも作成。

index.html
<script src="./discord_bot.js"></script>
<button type="button" onclick="sendMessage()">メッセージを送信</button>

アプリを起動し「メッセージを送信」ボタンを押すと、Discordにメッセージが送信されます。

自分を投稿主にしたい場合は、普通の「client」を使用して処理します。

const client = new Discord.Client();
client.login('[自分のID]','[自分のパス]');