LoginSignup
1
4

More than 3 years have passed since last update.

Discord.jsで埋め込み(embed)をする時の注意点

Last updated at Posted at 2020-06-07

#大変お世話になったページ:Discord.jsでembed (埋め込みメッセージ) を扱う

いきなりですが、discord.jsについてしばらく説明続きます。わかっている方はこちら

環境

npm v6.14.4
node.js v12.18.0
discord.js v12.2.0

Discord.jsでローカルの画像を埋め込む

どうも、Discord.jsを使ったBOTを作り始めて一週間の初心者です。
あ、あと初投稿です。(記事の稚拙さは大目に見てください)

Discordでの埋め込みとは

 さて、discordで情報をまとめてカッコよく吐き出す手段に、embedという形式があります。(詳しくは大変お世話になったページをご覧になってください。)

 これを使うと、以下のようにカッコよく、クールでスタイリッシュ(ほとんど同じ意味)な感じで情報をまとめることができます。
キャプチャ.JPG

ローカル画像を埋め込む

 本題です。embedに埋め込みたい画像を、ネットの海の中からurl指定するのではなく自分のPCから指定したい時、一手間必要です。具体的には、以下のようにする必要があります。

discord_BOT.js
const discord = require('discord.js');
const client = new discord.Client();

// ~~~省略~~~

// 参加しているチャンネルにメッセージが送信された時に実行
client.on("message", message => {
// BOTが自分の投稿に反応しないように
     if(message.author.bot)return;
     message.channel.send({
        embed : {
            image : {
              url : "attachment://暫定ファイル名"
            }
        },
        files : [{ attachment : "ローカルのファイルパス", name : "暫定ファイル名"},
                 ..., /*使う画像の分だけ*/
                 ]                  
    }
// ~~~省略~~~
//サーバーにログインする
client.login("BOTのトークン", true);

 ごく単純な、メッセージが送られたら必ず画像埋め込んで送るという迷惑極まりないBOTです。
注目していただきたいのは、urlの指定方法。attachment://ってついてます。ついでにfilesのなかにもattachmentの文字があります。これはfilesnameで指定した変数に画像ファイルを入れているようなもの、と私は考えています(保険)。
urlにて、nameattachment://と付けてローカル画像を指定できます。

注意点

 さてさて、本当の本題です。このname、日本語に対応していないようです。

nameは半角英数字にしましょう!

 長々と周辺の説明をわかりにくくしてきた癖に言いたいことはこれだけです。
変数名は英語にしようね?

「何を今更…」という方もいらっしゃるでしょう。

 しかし、nameを変数だと考えずに関数のタイポやバージョンの壁を疑って一日を無駄にしてしまう可能性を潰したかったのです。なんてもったいない時間の使い方だったのだろう。


 繰り返しますが 初 投 稿なもので、しきたりとか見やすさとかよくわかりません。
その中で拙文を読むという苦行に耐えてくださった皆様には軽く感謝を。

 

1
4
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
1
4