如何使用meteor进行API调用

好的,这里是twitter API,

http://search.twitter.com/search.atom?q=perkytweets 

任何人都可以给我任何关于如何去使用meteor调用这个API或链接的提示

更新::

这是我试过的代码,但没有显示任何回应

 if (Meteor.isClient) { Template.hello.greeting = function () { return "Welcome to HelloWorld"; }; Template.hello.events({ 'click input' : function () { checkTwitter(); } }); Meteor.methods({checkTwitter: function () { this.unblock(); var result = Meteor.http.call("GET", "http://search.twitter.com/search.atom?q=perkytweets"); alert(result.statusCode); }}); } if (Meteor.isServer) { Meteor.startup(function () { }); } 

你正在定义你的checkTwitter Meteor.method 一个客户端范围内的块。 由于您不能从客户端调用跨域(除非使用jsonp),您必须将此块放入Meteor.isServer块中。

另外,根据文档 ,checkTwitter函数的客户端Meteor.method只是服务器端方法的一个存根 。 您将需要查看文档以获得关于服务器端和客户端Meteor.methods如何Meteor.methods工作的完整说明。

这是http调用的一个工作示例:

 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 }); } 

这可能看起来很简单 – 但是,您的Meteor项目并不会默认使用HTTP包,而是要求您安装点菜。

在命令行上:

  1. 只是meteor:
    meteor加http

  2. 陨石:
    mrt添加http

meteorHTTP文件

Meteor.http.get在客户端是asynchronous的,所以你需要提供一个callback函数:

 Meteor.http.call("GET",url,function(error,result){ console.log(result.statusCode); }); 

使用Meteor.http.get 。 根据文档 :

 Meteor.http.get(url, [options], [asyncCallback]) Anywhere Send an HTTP GET request. Equivalent to Meteor.http.call("GET", ...). 

文档实际上包括使用Twitter的一些例子,所以你应该能够开始使用它们。

在服务器端,如果你提供的callback给http.get它将是asynchronous调用,所以我的解决scheme,客户的未定义的回报是

var result = HTTP.get(iurl); 返回result.data.response;

因为我没有把callback传递给HTTP.get,所以它一直等到我得到回应。 希望能帮助到你