node.jsでの、ディスコードからコマンドを受け取ったときTwitterの特定アカウントのtweetを取得して、tweet表示するプログラムを試しています。
コマンドを実行しても、
TwitterObject: refresh: twList: []
tweet取得(初回)! -> []
としか表示されません。エラーメッセージもありません。
node.js
var Discord = require ( "discord.js" ); var client = new Discord.Client(); var request = require('request'); var async = require('async'); client.on("disconnected", e => { log("error", "Lost connection to the Discord server. This is bad."); if(local.inter){ clearInterval(local.inter); log("debug","Destroyed interval()!"); local.inter = null; } client.login("記入"); }); client.on("message", (msg) => { if (msg.content.startsWith(';tt')) { msg.channel.sendMessage("取得します"); var TwitterObject = function(_cb){ var callback = _cb === undefined ? function(){} : _cb; this.url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?user_id=ユーザーID入れました&count=10&trim_user=false&exclude_replies=false&contributor_details=false&include_rts=true'; var oauth = { consumer_key: '入れました', consumer_secret: '入れました', access_token: '入れました', access_token_secret: 'いれました' }; this.refreshWait = 60000; this.twList = []; this.refresh(callback); }; TwitterObject.prototype.run = function(){ var self = this; console.log("TwitterObject: run"); msg.channel.sendMessage("TwitterObject: run"); setTimeout(function(){ self.refresh(); self.run(); }, (this.refreshWait / 2) + (this.refreshWait * Math.random())); }; TwitterObject.prototype.refresh = function(_cb){ var self = this; var callback = _cb === undefined ? function(){} : _cb; request.get({url:this.url, oauth:this.oauth, json:true}, function (e, r, user) { self.twList = []; async.each(function(tw){ self.twList.push({ created_at: tw.created_at, text: tw.text, url: 'https://twitter.com/' + @なしのアカウント情報入れました + '/status/' }); }); console.log("TwitterObject: refresh: twList: " + JSON.stringify(self.twList)); msg.channel.sendMessage("TwitterObject: refresh: twList: " + JSON.stringify(self.twList)); callback(self); }); }; TwitterObject.prototype.get3Tweets = function(){ return this.twList.slice(0,3); }; TwitterObject.prototype.getAllTweets = function(){ return this.twList; }; TwitterObject.prototype.getEncoded3Tweets = function(){ return encodeURIComponent(JSON.stringify(this.twList.slice(0,3))); }; TwitterObject.prototype.getEncodedAllTweets = function(){ return encodeURIComponent(JSON.stringify(this.twList)); }; var twObj = new TwitterObject(function(two){ var tweets3 = two.get3Tweets(); console.log('tweet取得(初回)! -> ' + JSON.stringify(tweets3)); msg.channel.sendMessage('tweet取得(初回)! -> ' + JSON.stringify(tweets3)); });
URLの変更や、トークン等の確認もしましたが変わりませんでした。
よろしくお願いします。
node.js v7.4.0
windows10 homeです
あなたの回答
tips
プレビュー