次のコードは、Instagram ユーザーのフォロワーのリストを取得し、それらを 1 つの配列に結合して、Express ルート ハンドラーでそれらを返すことができるようにします。
これは、ページをめくる結果がもうないことを Instagram が通知するまで実行し続ける必要があります。この関数は、必須の「ユーザー ID」、必須の「access_token」、オプションの「cursor」、およびコールバックを受け入れます。
完全に結合されたデータが正しい JSON 形式で正常に返されますが、エクスプレス ハンドラーに戻すことはできません。
この情報をエクスプレス ハンドラーに戻すにはどうすればよいですか?
var out_data = [];
function getFollows(id,access_token,cursor,callback) {
if(cursor && cursor != 1) {
console.log('using cursor url with cursor: '+cursor);
var url = 'https://api.instagram.com/v1/users/'+id+'/follows?&access_token='+access_token+'&client_id='+client_id+'&cursor='+cursor;
} else {
console.log('using standard url');
var url = 'https://api.instagram.com/v1/users/'+id+'/follows?&access_token='+access_token+'&client_id='+client_id+';
}
request(url,function(err,res,body){
var json = JSON.parse(body);
_.each(json.data,function(item){
out_data.push(item);
});
if(json.pagination.next_cursor) {
getFollows(id,access_token,json.pagination.next_cursor,function(adata){
out_data.push(adata);
});
}
if(!json.pagination.next_cursor) {
callback(out_data);
//console.log(out_data);
}
});
};