2017-08-06 4 views
1

J'essaie de comprendre comment obtenir un tableau d'ID utilisateur à partir d'une liste Twitter spécifique, et d'aller automatiquement au curseur suivant basé sur une propriété dans la réponse TwitterAPI JSON, qui est next_cursor. docs: https://dev.twitter.com/rest/reference/get/lists/members || https://dev.twitter.com/overview/api/cursoringComment puis-je parcourir les objets de réponse du curseur à partir de l'API Twitter dans NodeJS (module npm Twitter)?

Mon code:

var Twitter = require('twitter') 
var numFromCursor = -1; 

var client = new Twitter({ 
    consumer_key: process.env.tw_consumer_key, 
    consumer_secret: process.env.tw_consumer_secret, 
    access_token_key: process.env.tw_access_token, 
    access_token_secret: process.env.tw_access_token_secret 
}) 

var cursorIterator = (twitClient, cursorObj) => { 
    twitClient.get('https://api.twitter.com/1.1/lists/members.json', 
{list_id: '*insert twitter list_id*', cursor: cursorObj}) 
    .then((list)=>{ 
     console.log(list); 
     cursorObj = list.next_cursor 
     return list 
    }) 
    .catch((err)=>{ 
     console.log(err); 
    }) 
} 

do{   
    cursorIterator(client, numFromCursor) 
} 
while(numFromCursor != 0) 

A ce stade, le code est une erreur indiquant logging que les params ne sont pas définies. J'ai jeté un coup d'oeil au code source du module npm de Twitter, et je n'ai rien vu qui puisse provoquer cette erreur. Toute aide serait massivement appreciee!

+0

Avez-vous essayé d'utiliser un rappel au lieu d'une promesse? Les [docs] (https://www.npmjs.com/package/twitter#promises) disent que deux conditions doivent être remplies lors de l'utilisation des promesses. –

+0

Je suis passé au rappel. Cela fonctionne en dehors de la boucle do/while (la version promise l'est aussi), mais pas à l'intérieur de la boucle. – D3v3l

Répondre

0

J'ai décidé de saisir manuellement l'ID next_cursor pour chaque page, car la requête get fonctionne lorsqu'elle est appelée depuis l'extérieur de la boucle. C'est une sorte de solution ennuyante, mais cela fonctionne dans ce scénario car la liste que j'examine compte un peu plus de 100 membres, et chaque réponse de tableau de curseur affiche 18 objets utilisateur.