API поиска в Твиттере - Как реализовать премиальные ключи доступа в NODE.JS? - PullRequest
1 голос
/ 03 июня 2019

Я использую npm-twit в node.js, чтобы получать твиты с помощью API поиска в Твиттере.

Я совершенно новичок в программировании, но мне это нужно для магистерской работы. Поэтому я получил премиум аккаунт с полным архивным доступом к поисковым запросам.

При стандартном бесплатном доступе к API мой код работал без проблем. Но сейчас я не знаю, как правильно реализовать токены доступа и т. Д.

Я попытался поместить product и label в разные места и изменил q на query и data.statues на data.results, но все, что я пробовал, дает мне несколько кодов ошибок - например,

'code: 195, message: 'Missing or invalid url parameter.' 
'code: 25, message: 'Query parameters are missing.'
'message: 'Sorry, that page does not exist', code: 34'.

Или говорит мне, что tweets.length не существует (хотя он работал раньше).

Или просто «ноль» (когда я использую этот код отсекается:

    T.get('search/tweets/fullarchive/:dev', params , gotData);   function gotData(err, data, response){console.log(data)}

)

// Это текущий код, который не работает

var Twit = require('twit'); 
var config = require('./config');

var T = new Twit({
  consumer_key:         'XXX',
  consumer_secret:      'XXX',
  access_token:         'XXX',
  access_token_secret:  'XXX',
  timeout_ms:           60*1000,
  strictSSL:            true,
  app_only_auth: true,

PRODUCT: 'fullarchive',
LABEL: 'dev',});

var params = { 
query: 'VW',
fromDate:'201801010000',
toDate:'201901010000',
followers_count:1000,
maxResults: 500,
result_type: 'popular',
lang: 'en' 
//next: ''
 }

T.get('search/tweets/fullarchive/:dev', params , gotData);
//T.get('search/tweets', params , gotData); - gives me all results in standard api


function gotData(err, data, response)
{
var tweets = data.results; //var tweets = data.statuses - gives me what I need in standard api
for (var i = 0; i < tweets.length; i++)

console.log(tweets[i].text, tweets[i].retweet_count,tweets[i].created_at,tweets[i].id_str,tweets[i].favorite_count,);

С этим кодом я получаю ошибку 'Unhandled rejection TypeError: Cannot read property 'results' of null'

В идеале я хочу получить информацию о твите, содержащем его текст, дату создания, количество ретвитов, идентификатор твита, количество избранных - и, если возможно, «следующий» токен при необходимости.

Буду очень признателен за любую помощь!

...