How to make an API call using meteor

后端 未结 5 2029
别跟我提以往
别跟我提以往 2020-12-07 10:19

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

相关标签:
5条回答
  • 2020-12-07 11:03

    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.

    0 讨论(0)
  • 2020-12-07 11:06

    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:

    1. Just Meteor:
      meteor add http

    2. Meteorite:
      mrt add http

    Meteor HTTP Docs

    0 讨论(0)
  • 2020-12-07 11:10

    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
        });
    }
    
    0 讨论(0)
  • 2020-12-07 11:10

    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

    0 讨论(0)
  • 2020-12-07 11:17

    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);
    });
    
    0 讨论(0)
提交回复
热议问题