2015-09-08 9 views
5

Je veux utiliser l'API Twitter (https://www.npmjs.com/package/twitter) et voici le pense que je voudrais ajouter:Comment montrer les 20 derniers tweets avec twitter api sur express.js avec node.js?

app.js & package.json

var express = require("express"), 
path  = require("path"), 
http  = require("http"), 
twitter  = require("twitter"), 
app   = express(); 

http.createServer(app).listen(3000); 

twitter_data.js

var Twitter = require('twitter'); 
var client = new Twitter({ 
    consumer_key: '', 
    consumer_secret: '', 
    access_token_key: '', 
    access_token_secret: '' 
}); 

var params = {screen_name: 'nodejs'}; 

client.get('statuses/user_timeline', params, function(error, tweets, response){ 
    if (!error) { 
    console.log(tweets); 
    } 
}); 

Répondre

14

Je vais essayer de le garder court, nous y voilà:

Installez express-generator module d'abord: npm install -g express-generator

Run express --hbs (vous pouvez choisir Jade ou quoi que ce soit d'autre, mais je préfère Guidons, donc je vais continuer avec ça)

Allez dans le dossier et installer les dépendances: npm install

Module Installer twitter: npm install --save twitter

Rendez-vous sur le de Twitter et créez votre application. Obtenez les clés nécessaires: consumer_key, consumer_secret, access_token_key et access_token_secret.

Après ce point, je voudrais partager les codes réels au lieu d'expliquer ce qu'il faut faire

Voici fichier /routes/index.js:

var express = require('express'); 
var Twitter = require('twitter'); 

var router = express.Router(); 
var client = new Twitter({ 
    consumer_key: 'XXX', 
    consumer_secret: 'XXX', 
    access_token_key: 'XXX', 
    access_token_secret: 'XXX' 
}); 

router.get('/', function(req, res, next) { 
    // https://dev.twitter.com/rest/reference/get/statuses/user_timeline 
    client.get('statuses/user_timeline', { screen_name: 'nodejs', count: 20 }, function(error, tweets, response) { 
    if (!error) { 
     res.status(200).render('index', { title: 'Express', tweets: tweets }); 
    } 
    else { 
     res.status(500).json({ error: error }); 
    } 
    }); 
}); 

module.exports = router; 

Et voici/vues/index. fichier HBS:

<ul> 
    {{#each tweets }} 
    <li>{{ this.text }}</li> 
    {{/each }} 
</ul> 

Lorsque vous les enregistrez tous et exécutez npm start, vous pouvez voir les résultats à http://localhost:3000

+0

Merci, il fonctionne –

+1

Ensuite, s'il vous plaît marquer comme une réponse acceptée;) –

+0

comment modifier twitter gérer j'utilise ajax get var twitterhandle = $ ('# twitterUsername'). Val(); .ajax $ ({ Type: 'GET', données: { texte: twitterhandle }, url: '/ statuts/user_timeline', }); veuillez partager ce que je veux ajouter dans /routes/index.js –