JSONP とかよくわからないけど・・

ともかく、Twitter をいじってみることにする。わからないけど始めることが肝心!

まずはコピペだけでできそうなことからやってみよう。これ↓をマネする。

JSONPのTwitterAPIを試してみました - blog.katsuma.tv

(test01.js)
function loadTwitter_test01(id){
	//var id = "8440992";
	var api = "http://twitter.com/statuses/user_timeline/" + id + ".json?callback=viewTwitter&count=1";
	var s = document.createElement('script');
	var head = document.getElementsByTagName('head').item(0);

	s.setAttribute('type', 'text/javascript');
	s.setAttribute('src', api);
	s.setAttribute('charset', 'UTF-8');
	head.appendChild(s);
}

function viewTwitter(json){
	//console.log(json);
	var states = json;
	var latest_state = states[0];
	$('twitt').innerHTML = latest_state.text;
	$('screen_name').innerHTML = latest_state.user.screen_name;
	$('url').innerHTML = latest_state.user.url;
}

というスクリプトを書いておいて、この↓ HTML を表示してやると、Twitter から最新のつぶやき(twitt)を取って来て表示してくれる。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>twitter test01</title>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/test01.js"></script>
</head>

<body>
<script type="text/javascript">
  loadTwitter_test01('8440992');
</script>
<div id="twitt"></div>
<div>by <span id="screen_name"></span></div>
<div id="url"></div>
</body>
</html>

実行結果:twitter_test01


とりあえず動いたけど、viewTwitter(json) 関数がなぜ自動的に呼び出されるのかわからない。この関数の名前を viewTwitter_test01(json) に変えるとうまく動かなくなるし。JSONP というやつに関数名に関する規約があるのかも知れない。にしても、どういう規約なんだかさっぱりわからない。この辺は課題だな。


今後の課題:JSONP について少し勉強すること!