API | memo-memo Skip to content

memo-memo

web制作に便利そうな情報をメモるブログ

Archive

Tag: API

本当なら、phpとかでxmlを取得すればいいんだけど、phpが使えない時にはちょっと有効かもしれないGoogle AJAX Feedの使い方のメモ。

<script type="text/javascript" src="http://www.google.com/jsapi?key=ABCD"></script>
<script type="text/javascript">
	google.load("feeds","1");
</script>
<script type="text/javascript" src="jquery.js"></script>

まずはヘッダーに、上記の様にgoogleapiとjQueryを読み込む。
で、次は外部ファイル化したjsファイルの中に処理を記述する。
例えば

google.setOnLoadCallback(function(){
var feed = new google.feeds.Feed("フィードのURL");
feed.setNumEntries(4);
//フィードの取得&取得フィードの処理(loadの引数"function"で行う)
feed.load(function(result){
//読み込みが成功したときの処理
if(!result.error){ //エラーじゃない場合
//タイトルの表示
var html="";
for(var i=0; i<result.feed.entries.length; i++){
var blogdate = new Date(result.feed.entries[i].publishedDate);
var blogYear = blogdate.getFullYear();
var blogMonth = blogdate.getMonth()+1;
var blogDay = blogdate.getDate();
html += "<dl>";
html += "<dt>"+ blogYear +"年"+ blogMonth +"月"+ blogDay +"日</dt>";
html +="<dd><a target='_blank' href='"+ result.feed.entries[i].link +"'>"+ result.feed.entries[i].title +"</a></dd>"
html +="</dl>";
}
$("#news_container").html(html);
}
});
});

こんな感じ。
リファレンスの、「JSON 形式の結果」の所に、「result.feed.xxxx」が何を出力するか書いてある。
例えば、result.feed.titleはフィードタイトルを取得するらしい。

今までSimpleAPIしか使った事が無かったけど、探してみると色々あるようです。

とりあえず、HeartRails Captureを使ってみたら、なかなか良かったのでメモ。

http://capture.heartrails.com/

画像の大きさや、シャドウなんかのパラメータも付加出来ます。

<?php

//まずは、GETで渡すパラメータを作る。

$params = array(
'city'    =>"40",
'day'    => "today"
);

//変数paramsに、連想配列で、添え字と値を格納。この場合、添え字cityは、40、添え字dayは、today。

//その次に…

$encoded_params = array();

foreach ($params as $k => $v){

$encoded_params[] = urlencode($k).'='.urlencode($v);
}

//foreachで、配列paramをエンコードしつつ、=(イコール)で繋ぐ。

//この場合、作られるのは、「city=40」と「day=today」。

//次に、外部APIに通信するurlを作る。

//今回は、LWWS(Livedoor Weather Web Service)

$url = "http://weather.livedoor.com/forecast/webservice/rest/v1?".implode('&', $encoded_params);

//implode('&',$encoded_params)で、$encoded_paramsに入っている配列を、&で繋いで一つにしている。(GETのパラメータ完成)

$rsp = file_get_contents($url);

//file_get_contents($url)で、外部APIに通信し、その結果を変数rspに格納。

//取得したデータ(XML)を表示(print)

//header("Content-type:text/xml;")は、決まり文句
header("Content-type:text/xml;");
print($rsp);

?>