(サーバトラブルで記事が消えてしまったので、再度書き直しました)
Twitter REST API 1.0 → 1.1の仕様変更で、全てのAPIの使用にはOAuth認証が必要になり、1.0系は2013/6/12をもって完全停止となりました。クライアントサイドのJavaScriptでユーザのタイムラインを表示する必要があり、OAuthに対応したコードを書いてみたのですが、jQueryのajax関数で嵌ったので、メモとして残しておきます。consumerKeyなどのキーが丸見えなので、用途は限られると思います。
*用意するもの
- jQuery http://jquery.com/
- oauth.js, sha1.js http://oauth.googlecode.com/svn/code/javascript/
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>Twitter+OAuth+javaScriptでTL表示</title>
<script type="text/javascript" src="jquery-[バージョン]"></script>
<script type="text/javascript" src="oauth.js"></script>
<script type="text/javascript" src="sha1.js"></script>
<script type="text/javascript" >
function Twitter() {}
Twitter.prototype = {
consumerKey: "省略",
consumerSecret: "省略",
accessToken: "省略",
tokenSecret: "省略"
};
Twitter.prototype.get = function(api, content) {
var accessor = {
consumerSecret: this.consumerSecret,
tokenSecret: this.tokenSecret
};
var message = {
method: "GET",
action: api,
parameters: {
oauth_version: "1.0",
oauth_signature_method: "HMAC-SHA1",
oauth_consumer_key: this.consumerKey,
oauth_token: this.accessToken
}
};
for (var key in content) {
message.parameters[key] = content[key];
}
OAuth.setTimestampAndNonce(message);
OAuth.SignatureMethod.sign(message, accessor);
var target = OAuth.addToURL(message.action, message.parameters);
var options = {
type: message.method,
url: target,
dataType: "jsonp", //ここでjsonpを指定する
jsonp: false, //jQueryによるcallback関数名の埋め込みはしない
cache: true //リクエストパラメータに時刻を埋め込まない
};
$.ajax(options);
}
var twitter = new Twitter();
function update(data){
for( var i = 0; i < data.length; i++ ) {
$("#test").append("<p>"+data[i].user.name + ' : ' + data[i].text+"</p>");
}
}
$(function(){
//オプションとコールバック関数の指定
var content = {count: "50", callback: "update"};
//Twitter APIの呼び出し
twitter.get("https://api.twitter.com/1.1/statuses/home_timeline.json", content)
});
</script>
</head>
<body>
<div id="test"></div>
</body>
</html>
home_timelineは制限がきつく15分で15回(つまり1分1回)の呼び出しでRate Limitになってしまうため、ユーザーの投稿だけでよければAPI呼び出しをuser_timelineに替えれば15分で180回まで呼び出せます。
最近の投稿
アーカイブ
- 2025年11月
- 2025年10月
- 2025年9月
- 2025年7月
- 2025年5月
- 2025年3月
- 2025年1月
- 2024年11月
- 2024年9月
- 2024年7月
- 2024年5月
- 2024年3月
- 2024年1月
- 2023年11月
- 2023年10月
- 2023年6月
- 2023年4月
- 2023年2月
- 2023年1月
- 2022年11月
- 2022年9月
- 2022年8月
- 2022年7月
- 2022年3月
- 2022年2月
- 2021年12月
- 2021年11月
- 2021年10月
- 2021年9月
- 2021年4月
- 2020年11月
- 2020年4月
- 2019年12月
- 2019年11月
- 2019年10月
- 2019年9月
- 2019年8月
- 2019年6月
- 2019年5月
- 2019年4月
- 2019年1月
- 2018年12月
- 2018年11月
- 2018年9月
- 2018年8月
- 2018年7月
- 2018年5月
- 2018年3月
- 2018年2月
- 2018年1月
- 2017年12月
- 2017年11月
- 2017年10月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年5月
- 2017年3月
- 2017年2月
- 2016年11月
- 2016年10月
- 2016年9月
- 2016年8月
- 2016年7月
- 2016年6月
- 2016年3月
- 2015年12月
- 2015年11月
- 2015年9月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年3月
- 2015年2月
- 2014年12月
- 2014年11月
- 2014年9月
- 2014年8月
- 2014年7月
- 2014年5月
- 2014年3月
- 2014年1月
- 2013年12月
- 2013年8月
- 2013年6月
- 2013年5月
- 2013年3月
- 2012年6月
- 2012年3月
- 2012年2月
- 2012年1月
- 2009年4月