创建一个服务器应用程序来查询 API 并将其公开给访问点以“桥接”您的服务器以实际执行查询,因此您的密钥不会受到损害。
// server.js
var express = require('express');
var Twitter = require('twitter');
var twclient = new Twitter({
consumer_key: '', // debes poner los datos correctos en estos campos
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
// creamos la applicacion con express
var app = express();
// configuramos la carpeta 'public' como una carpeta de contenido estatico, html, css, etc.
app.use(express.static('public'));
app.get('/ultimotweet/:user', function(req, res){
// preparamos los datos del usuario a consultar
var usuario = {
// en screen_name, pones el nombre de usuario sin la arroba.
// req.params.user, el valor que viene en la solicitud ej: /ultimotweet/nombreuser => nombreuser
screen_name: req.params.user,
// la cantidad de mensajes a obtener
count: 1,
// solo mensajes propios (no re-tweets)
include_rts: false
};
twclient.get('statuses/user_timeline', usuario, function(error, tweets, response){
if(error) throw error; // se produjo un error, manejar aquí
if (tweets.length) {
// como hay tweets, con res.send enviamos la respuesta al navedador.
res.send(tweets[0].text);
} else {
// como no hay tweets mandamos un mensaje que lo explique.
res.send('El usuario no ha twiteado aun!');
}
});
});
app.listen(3000);
然后制作一个与此类似的客户端应用程序:
使用 ajax,您可以查询在前一个应用程序中创建的访问点并获取您正在寻找的信息。
<input id="user" type="text" placeholder="ingresa el usario de sin la @">
<button id="pedir">Obtener</button>
<div id="destino_tweet">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#pedir').click(function() {
$.ajax({
url: '/ultimotweet/' + $('#user').val()
}).done(function( data ) {
$('#destino_tweet').text(data);
});
});
});
</script>
要访问 Twitter API,请不要尝试直接通过browserfy或类似工具从浏览器中使用它,因为您应该公开您的密码,这些密码是秘密的。这让他们望而却步。
创建一个服务器应用程序来查询 API 并将其公开给访问点以“桥接”您的服务器以实际执行查询,因此您的密钥不会受到损害。
然后制作一个与此类似的客户端应用程序:
使用 ajax,您可以查询在前一个应用程序中创建的访问点并获取您正在寻找的信息。
我在 GitHub 上放了一个存储库,这样你就可以测试这个概念,并提供让你运行的说明。
https://github.com/rnrneverdies/nodetwitter
该方法
require();
仅在服务器端的 node.js 中使用,因此它可以在客户端的浏览器中使用,使用诸如 require.js 或 browserfy 之类的库如果它在客户端,请不要使用它,
require()
而是将 html 文件中的模块与<script src='./twitter'></script>