これが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.methodinsideクライアントスコープブロックを定義しています。 (jsonpを使用しない限り)クライアントからクロスドメインを呼び出すことはできないため、このブロックをMeteor.isServer
ブロックに配置する必要があります。
ドキュメントによれば 、checkTwitter関数のクライアント側Meteor.method
は単にstubのサーバー側のメソッド。サーバー側とクライアント側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
});
}
これは初歩的なように思えるかもしれませんが、HTTPパッケージはデフォルトではMeteorプロジェクトに含まれていないため、個別にインストールする必要があります。
コマンドラインで次のいずれかを実行します。
ただの流星:
meteor add http
隕石:
mrt add http
クライアント上のMeteor.http.getは非同期であるため、コールバック関数を提供する必要があります。
Meteor.http.call("GET",url,function(error,result){
console.log(result.statusCode);
});
つかいます Meteor.http.get
。 docs :
Meteor.http.get(url, [options], [asyncCallback]) Anywhere Send an HTTP GET request. Equivalent to Meteor.http.call("GET", ...).
このドキュメントには実際にTwitterの使用例がいくつか含まれているので、それらを使い始めることができるはずです。
サーバー側では、http.getにコールバックを提供すると非同期コールになりますので、クライアントでの未定義のリターンに対する私のソリューションは
var result = HTTP.get(iurl); return result.data.response;
hTTP.getにコールバックを渡さなかったため、応答があるまで待機していました。それが役に立てば幸い