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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

0回答

1689閲覧

Twitterから特定公式アカウントのtweetを取得後、表示したい

seigo2016

総合スコア7

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2017/02/05 04:14

編集2017/02/06 10:44

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です

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問