gpt4 book ai didi

node.js - 避免 Twitter API (node.js) 的多重验证

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:03 26 4
gpt4 key购买 nike

我正在尝试在node.js中创建一个基本应用程序,a)跟踪twitter中的关键字并临时存储与该关键字相关的消息,b)在积累了足够的消息后,将其返回给用户。我正在使用 ntwitter 库。

我在客户端和服务器端实现了一个基本的长轮询系统,但我在验证时遇到了一些问题。我当前设置的方式是,每次调用/api/streamfeed 时都会验证用户,因此可能每 30 秒(因为我有 30 秒的超时计划)在检查流之前验证一次。我认为这会给我带来麻烦,因为我相信验证是有速率限制的?有没有办法检查我是否已通过验证,而无需 ping Twitter 的 API(也许在第一次尝试后存储一个 bool 值)?

客户端:

//upon receiving a response, poll again
function getStreamFeed() {
console.log('calling getStreamFeed');
$http.get('/api/streamfeed').success(function(data) {
console.log(data)
getStreamFeed();
});
};

setTimeout(getStreamFeed, 1000);


Server side:
app.get('/api/streamfeed', function(req, res) {
/*
...
polling code
...
*/

twit.verifyCredentials(function(err, data) {
if (err) res.send(404);
twit.stream('statuses/filter', {
track: 'justin bieber'
}, function(stream) {
stream.on('data', function(data) {
console.log(data.text)
messages.push(data.text);
});

})
});
});

最佳答案

我会将凭据发回并再次重新发送...这可能是一个 bool 值,也可能是要使用的实际凭据。这些不是您的私钥或任何东西,只是用户的。

也可以在 header 和 cookie 中发送并正确散列等。

这只是简单地显示了一种应该有效的模式。

客户端:

function getStreamFeed(credentials) {
//upon receiving a response, poll again
console.log('calling getStreamFeed');
var url = '/api/streamfeed';
if (credentials) {
url += '&credentials=' + credentials;
}
$http
.get(url)
.success(function(data) {
console.log(data)
getStreamFeed(true);
});
};

setTimeout(getStreamFeed, 1000);

服务器端:

app.get('/api/streamfeed', function(req, res) {
function twitStream () {
twit.stream('statuses/filter', {track: 'justin bieber'}, function(stream) {
stream.on('data', function(data) {
console.log(data.text)
messages.push(data.text);
});
}
}
var credentials = req.query.credentials;
if (credentials) {
twitStream()
}
twit.verifyCredentials(function(err, data) {
if (err) res.send(404);
twitStream()
});
});

关于node.js - 避免 Twitter API (node.js) 的多重验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23828383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com