如何定义搜索词框以使用 Twitter 流 API 和 meteor.js 搜索用户的特定时间线
How do I define a search term box to search for a user's specific timeline using a Twitter stream API and meteor.js
你好,我目前有一个名为 twit 的 twitter 流 npm 包,用于检索特定用户的时间线并将这些推文和图片存储在数组中。
var x = [];
var y = [];
var z = [];
var imageUrl ;
var result;
var Stringify;
if (Meteor.isServer) {
var Twit = Meteor.npmRequire('twit');
Future = Meteor.npmRequire('fibers/future');
Tweets = new Meteor.Collection("tweets");
var twit = new Twit({
consumer_key: 'xxxxxxxxxxxxxxxxxx'
, consumer_secret: 'xxxxxxxxxxxxxxxxxx'
, access_token: 'xxxxxxxxxxxxxxxxxx'
, access_token_secret: 'xxxxxxxxxxxxxxxxxx'
});
twit.get('statuses/user_timeline', {screen_name: 'DopestClothes', count:20}, function(err, item) {
console.log(err, item);
for(var i=0 ; i < 19 ; i++)
{
console.log(item[i].entities.media+"YES");
console.log(item[i].entities.media+" media");
if(item[i].entities.media) {
imageUrl = item[i].entities.media[0].media_url;
z.push(imageUrl);
x.push(item[i].text+"\n");
y.push(item[i].created_at+"\n");
}
}
)}
这一切对我来说都很好,但我的问题是我如何在 Meteor 模板 HTML 中创建一个用户输入框,该输入框会重新激活以更改在中使用的变量 screen_name单击时的请求。
换句话说,允许用户指定应检索哪个用户时间线并刷新响应。从那时起,将 var z
(新的推特搜索数组结果)的结果存储到 mongoDB 集合中。
任何帮助或指导将不胜感激。
我想你需要的是meteor methods。
所以你可以详细说明这个
<template name="example">
<input type="text" id="testInput">
<button type="submit" id="testButton">Click to change the screen_name</button>
</template>
在 server/server.js
使用这个
Meteor.methods({
changeScreenName:function(newName){
twit.get('statuses/user_timeline', {screen_name: newName, count:20}, function(err, item) {
console.log(err, item);
}
})
中使用此方法
Template.example.events({
'click #testButton':function(event,template){
var newName = $('#testInput').val(), //jquery
newNames = document.getElementById('testInput').value; //Javascript
Meteor.call('changeScreenNsme',newName,function(err,result){
if(!err){
Collection.insert({etiquette:newName}); //and insert on the collection
console.log("The screen name was changed to " + newName)
}
})
}
})
你好,我目前有一个名为 twit 的 twitter 流 npm 包,用于检索特定用户的时间线并将这些推文和图片存储在数组中。
var x = [];
var y = [];
var z = [];
var imageUrl ;
var result;
var Stringify;
if (Meteor.isServer) {
var Twit = Meteor.npmRequire('twit');
Future = Meteor.npmRequire('fibers/future');
Tweets = new Meteor.Collection("tweets");
var twit = new Twit({
consumer_key: 'xxxxxxxxxxxxxxxxxx'
, consumer_secret: 'xxxxxxxxxxxxxxxxxx'
, access_token: 'xxxxxxxxxxxxxxxxxx'
, access_token_secret: 'xxxxxxxxxxxxxxxxxx'
});
twit.get('statuses/user_timeline', {screen_name: 'DopestClothes', count:20}, function(err, item) {
console.log(err, item);
for(var i=0 ; i < 19 ; i++)
{
console.log(item[i].entities.media+"YES");
console.log(item[i].entities.media+" media");
if(item[i].entities.media) {
imageUrl = item[i].entities.media[0].media_url;
z.push(imageUrl);
x.push(item[i].text+"\n");
y.push(item[i].created_at+"\n");
}
}
)}
这一切对我来说都很好,但我的问题是我如何在 Meteor 模板 HTML 中创建一个用户输入框,该输入框会重新激活以更改在中使用的变量 screen_name单击时的请求。
换句话说,允许用户指定应检索哪个用户时间线并刷新响应。从那时起,将 var z
(新的推特搜索数组结果)的结果存储到 mongoDB 集合中。
任何帮助或指导将不胜感激。
我想你需要的是meteor methods。
所以你可以详细说明这个
<template name="example">
<input type="text" id="testInput">
<button type="submit" id="testButton">Click to change the screen_name</button>
</template>
在 server/server.js
使用这个
Meteor.methods({
changeScreenName:function(newName){
twit.get('statuses/user_timeline', {screen_name: newName, count:20}, function(err, item) {
console.log(err, item);
}
})
中使用此方法
Template.example.events({
'click #testButton':function(event,template){
var newName = $('#testInput').val(), //jquery
newNames = document.getElementById('testInput').value; //Javascript
Meteor.call('changeScreenNsme',newName,function(err,result){
if(!err){
Collection.insert({etiquette:newName}); //and insert on the collection
console.log("The screen name was changed to " + newName)
}
})
}
})