質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1415閲覧

DiscordBotで数分おきに特定のメッセージを送信したい

omizupenguin

総合スコア1

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/10/20 12:12

前提・実現したいこと

discord.jsで数分おきに特定のチャンネルにメッセージを送信したい

発生している問題・エラーメッセージ

いろいろ試して見ても送信されない

該当のソースコード

const http = require('http'); const querystring = require('querystring'); const discord = require('discord.js'); const client = new discord.Client(); http.createServer(function(req, res){ if (req.method == 'POST'){ var data = ""; req.on('data', function(chunk){ data += chunk; }); req.on('end', function(){ if(!data){ res.end("No post data"); return; } var dataObject = querystring.parse(data); console.log("post:" + dataObject.type); if(dataObject.type == "wake"){ console.log("Woke up in post"); res.end(); return; } res.end(); }); } else if (req.method == 'GET'){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Discord Bot is active now\n'); } }).listen(3000); client.on('ready', message =>{ console.log('Bot準備完了~'); client.user.setPresence({ activity: { name: 'げーむ' } }); }); client.on('message', message =>{ if (message.author.id == client.user.id || message.author.bot){ return; } if(message.isMemberMentioned(client.user)){ sendReply(message, "呼びましたか?"); return; } client.on('ready', () => { setInterval(() => { client.channels.cache.get("ID欄").send("めっせーじ");(実際はここは自分が贈りたいメッセージにしてあります) }, 1000 * 60); }); if(process.env.DISCORD_BOT_TOKEN == undefined){ console.log('DISCORD_BOT_TOKENが設定されていません。'); process.exit(0); } client.login( process.env.DISCORD_BOT_TOKEN ); function sendReply(message, text){ message.reply(text) .then(console.log("リプライ送信: " + text)) .catch(console.error); } function sendMsg(channelId, text, option={}){ client.channels.get(channelId).send(text, option) .then(console.log("メッセージ送信: " + text + JSON.stringify(option))) .catch(console.error);

試したこと

IDの確認、別のサーバーでの実行

補足情報

Discord.js 11.6.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Discord.jsのv11は古すぎるのでv13に更新しましょう。
そして、

js

1const http = require('http'); 2const querystring = require('querystring'); 3const discord = require('discord.js'); 4const client = new discord.Client({ intents: 32509 }); 5 6http.createServer(function(req, res){ 7 if (req.method == 'POST'){ 8 var data = ""; 9 req.on('data', function(chunk){ 10 data += chunk; 11 }); 12 req.on('end', function(){ 13 if(!data){ 14 res.end("No post data"); 15 return; 16 } 17 var dataObject = querystring.parse(data); 18 console.log("post:" + dataObject.type); 19 if(dataObject.type == "wake"){ 20 console.log("Woke up in post"); 21 res.end(); 22 return; 23 } 24 res.end(); 25 }); 26 } 27 else if (req.method == 'GET'){ 28 res.writeHead(200, {'Content-Type': 'text/plain'}); 29 res.end('Discord Bot is active now\n'); 30 } 31}).listen(3000); 32 33client.on('ready', message =>{ 34 console.log('Bot準備完了~'); 35 client.user.setPresence({ activities: [{ name: 'げーむ' }] }); 36 setInterval(() => { 37 client.channels.cache.get("ID欄").send("めっせーじ");(実際はここは自分が贈りたいメッセージにしてあります) 38 }, 1000 * 60); 39}); 40 41client.on('messageCreate', message =>{ 42 if (message.author.bot){ 43 return; 44 } 45 if(message.mentions.users.has(client.user)){ 46 message.reply("呼びましたか?"); 47 return; 48 } 49 50}); 51 52if(process.env.DISCORD_BOT_TOKEN == undefined){ 53 console.log('DISCORD_BOT_TOKENが設定されていません。'); 54 process.exit(0); 55} 56 57client.login( process.env.DISCORD_BOT_TOKEN );

これで動くと思います

投稿2021/10/20 12:24

Waki285

総合スコア2014

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

omizupenguin

2021/10/21 11:46

ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問