Domanda Come effettuare una chiamata API utilizzando Meteor


Ok ecco l'API di twitter,

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

Qualcuno può darmi qualche suggerimento su come andare a chiamare questa API o il collegamento utilizzando Meteora

Aggiornare::

Ecco il codice che ho provato ma non mostra alcuna risposta

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
2018-01-14 14:45


origine


risposte:


Stai definendo il tuo checkTwitter Meteor.method  dentro un blocco con ambito client. Poiché non puoi chiamare il dominio incrociato dal client (a meno che non usi jsonp), devi inserire questo blocco in a Meteor.isServer bloccare.

Per inciso, secondo la documentazione, il lato client Meteor.method della tua funzione checkTwitter è semplicemente a mozzicone di un metodo sul lato server. Dovrai controllare i documenti per una spiegazione completa di come lato server e lato client Meteor.methods lavorare insieme.

Ecco un esempio funzionante della chiamata 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
2018-01-14 17:39



Questo potrebbe sembrare rudimentale, ma il pacchetto HTTP non viene fornito di default nel tuo progetto Meteor e richiede l'installazione a la carte.

Sulla riga di comando:

  1. Solo Meteor:
    meteora aggiungere http

  2. Meteorite:
    mrt aggiungi http

Meteor HTTP Docs


29
2017-09-20 12:45



Meteor.http.get sul client è asincrono, quindi dovrai fornire una funzione di callback:

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

6
2018-01-14 16:17



Uso Meteor.http.get. Per docs:

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

I documenti in realtà includono alcuni esempi di utilizzo di Twitter, quindi dovresti essere in grado di iniziare con loro.


4
2018-01-14 15:02



sul lato server se si fornisce la chiamata a http.get sarà una chiamata asincrona quindi le mie soluzioni a quel ritorno indefinito sul client sono state

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

come non ho passato una chiamata a HTTP.get così ha aspettato fino a quando non ho ricevuto risposta. spero che sia d'aiuto


0
2018-01-28 21:21