Ok here is the twitter API,
http://search.twitter.com/search.atom?q=perkytweets
Can any one give me any hint about how to go about calling
Use Meteor.http.get
. Per the docs:
Meteor.http.get(url, [options], [asyncCallback]) Anywhere Send an HTTP GET request. Equivalent to Meteor.http.call("GET", ...).
The docs actually include some examples of using Twitter, so you should be able to get started with them.
This might seem rudimentary - but the HTTP package does not come by default in your Meteor project and requires that you install it a la carte.
On the command line either:
Just Meteor:
meteor add http
Meteorite:
mrt add http
Meteor HTTP Docs
You are defining your checkTwitter Meteor.method inside a client-scoped block. Because you cannot call cross domain from the client (unless using jsonp), you have to put this block in a Meteor.isServer
block.
As an aside, per the documentation, the client side Meteor.method
of your checkTwitter function is merely a stub of a server-side method. You'll want to check out the docs for a full explanation of how server-side and client-side Meteor.methods
work together.
Here is a working example of the http call:
if (Meteor.isServer) {
Meteor.methods({
checkTwitter: function () {
this.unblock();
return Meteor.http.call("GET", "http://search.twitter.com/search.json?q=perkytweets");
}
});
}
//invoke the server method
if (Meteor.isClient) {
Meteor.call("checkTwitter", function(error, results) {
console.log(results.content); //results.data should be a JSON object
});
}
on server side if you provide the call back to http.get it will be asynch call so my solutions to that undefined return on client was
var result = HTTP.get(iurl); return result.data.response;
as i did not pass a call back to HTTP.get so it waited until i got response. hope it helps
Meteor.http.get on the client is async, so you will need to provide a callback function :
Meteor.http.call("GET",url,function(error,result){
console.log(result.statusCode);
});