(サーバトラブルで記事が消えてしまったので、再度書き直しました)
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回まで呼び出せます。
最近の投稿
アーカイブ
- 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月