Discord.js API を使用して Discord ボットを開発しています。ここまでは順調ですが、関連する subreddit の最新の投稿が数分ごとにボットによってチャットで発表されるといいなと思いました。これで、スクリプトで Reddit JSON API から関連データを引き出すことができましたが、次のエラーがスローされます。
TypeError: Cannot read property 'sendMessage' of undefined at /data/app/app.js:810:7 at Array.forEach (native) at IncomingMessage.<anonymous> (/data/app/app.js:808:36) at emitNone (events.js:72:20) at IncomingMessage.emit (events.js:166:7) at endReadableNT (_stream_readable.js:913:12) at nextTickCallbackWith2Args (node.js:442:9) at process._tickCallback (node.js:356:17) /data/app/app.js:810 bot.sendMessage(channel,"https://www.reddit.com" + child.data.permalink);
これは私のコードです:
var Discord = require("discord.js");
var bot = new Discord.Client();
var redditSubModule = "pics";
function getRedditPosts(bot, msg) {
var url = "http://www.reddit.com/r/" + redditSubModule + "/new/.json?limit=2";
var request = http.get(url, function(response) {
var json = "";
response.on("data", function(chunk) {
json += chunk;
});
response.on("end", function() {
var redditResponse = JSON.parse(json);
redditResponse.data.children.forEach(function(child) {
console.log("https://www.reddit.com" + child.data.permalink);
bot.sendMessage(msg.channel,"https://www.reddit.com" + child.data.permalink);
});
});
});
request.on("error", function(err) {
console.log(err);
});
setTimeout(getRedditPosts, 60000);
}
getRedditPosts();
なぜbot
未定義なのですか?