[解決済み] TypeError: 未定義のプロパティ 'message' を読み取ることができません - Twitter API
2022-02-05 08:42:15
質問
以下は、app.jsを実行したときの出力です。すべてうまくいっていたのに、まったくランダムに発生するようになりました。全く変更はしていません。
TypeError: Cannot read property 'message' of undefined
at /home/ec2-user/environment/rt-bot/app.js:78:48
at Request._callback (/home/ec2-user/environment/node_modules/twitter/lib/twitter.js:220:14)
at Request.self.callback (/home/ec2-user/environment/node_modules/request/request.js:186:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/home/ec2-user/environment/node_modules/request/request.js:1163:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/home/ec2-user/environment/node_modules/request/request.js:1085:12)
at IncomingMessage.g (events.js:292:16)
masterブランチから新しいインスタンスを作成してみましたが、まだこのエラーが発生します。何か思い当たることはありますか?
エラーの原因となっているコード このコードは以前は動作していたのですが。
T.get('search/tweets', query, function(err, data, response) {
// continue if no errors
if(!err){
// loop
for(let i = 0; i < data.statuses.length; i++){
// get latest tweet ID
let id = { id: data.statuses[i].id_str }
// try favorite
T.post('favorites/create', id, function(err, response){
// log failures
if(err){
console.log('Try Favorite - ', err[0].message);
}
// log success
else{
let username = response.user.screen_name;
let tweetId = response.id_str;
console.log('Favorited: ', `https://twitter.com/${username}/status/${tweetId}`)
}
});
初回発生時の画像 . ご覧のように、すべてがうまく機能していたのに、環境にもコードベースにもまったく変更がないのに、このエラーが突然発生したのです。
UPDATE
でエラーログを記録した場合の出力
console.log('Try Favorite - ', err.message);
ではなく
console.log('Try Favorite - ', err[0].message);
[[Apr 28 21:27:00.702]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.705]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.706]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.707]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.708]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.709]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.712]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.713]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.718]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.793]] [LOG] Try Favorite - HTTP Error: 429 Too Many Requests
また、リツイート機能では、同じコンソールロギング方式を使用していることに注意してください。以下のコードを見てください。うまく出力されます。
// try retweet
T.post('statuses/retweet', id, function(err, response){
// log failures
if(err){
console.log('Try Retweet - ', err[0].message);
}
解決方法は?
ツイート 用途 リクエスト は Twitter API への HTTP リクエストを送信するため、エラーは配列ではなく単一のオブジェクトになります。したがって、エラーハンドラは次のようになります。
if(err){
console.log('Try Favorite - ', err.message);
}
関連
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】module.exports "モジュールが定義されていません"
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】未定義のオブジェクトプロパティを検出する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】Vueが定義されていない
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする