web-dev-qa-db-fra.com

Comment faire un appel API à l'aide de météore

Ok voici l'API Twitter,

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

Quelqu'un peut-il me dire comment appeler cette API ou ce lien à l'aide de Meteor

Mettre à jour::

Voici le code que j'ai essayé mais sa ne montre aucune réponse

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 () {
    });
}
44
iJade

Vous définissez votre checkTwitter Meteor.methodinside dans un bloc client. Étant donné que vous ne pouvez pas appeler cross domain à partir du client (sauf si vous utilisez jsonp), vous devez placer ce bloc dans un bloc Meteor.isServer

En passant, d'après la documentation , le Meteor.method côté client de votre fonction checkTwitter est simplement un stub d'une méthode côté serveur. Vous voudrez consulter la documentation pour une explication complète de la manière dont Meteor.methods côté serveur et côté client fonctionnent ensemble.

Voici un exemple de travail de l'appel 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
    });
}
57
TimDog

Cela peut sembler rudimentaire - mais le paquet HTTP ne vient pas par défaut dans votre projet Meteor et nécessite de l’installer à la carte.

Sur la ligne de commande, soit:

  1. Juste météore: 
    météore ajouter http

  2. Météorite: 
    mrt ajouter http

Documents HTTP Meteor

29
user2132316

Meteor.http.get sur le client est asynchrone, vous devrez donc fournir une fonction de rappel: 

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

Utilisez Meteor.http.get. Par les docs :

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

La documentation contient en fait des exemples d'utilisation de Twitter, vous devriez donc pouvoir vous y familiariser.

4
Rahul

côté serveur, si vous rappelez http.get, ce sera un appel asynchrone, donc mes solutions pour ce retour non défini sur le client 

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

comme je n'ai pas repassé un appel à HTTP.get, il a attendu que je reçoive une réponse. J'espère que ça aide

0
Mr Megamind