読者です 読者をやめる 読者になる 読者になる

KOYAMA Yoshiaki のブログ

プログラミングについての試行錯誤をつらつら書き溜めていきます。

私的利用、自作 Twitter アプリ < iYKTwitter >

@iphone_dev_jp [ http://twitter.com/iphone_dev_jp ] 閲覧目的で、遅ればせながら Twitter @KYoshiaki [ http://twitter.com/KYoshiaki ] を始めてみました。とりあえず、次のアプリをダウンロードしてみました。

iPhone 
カテゴリ/ソーシャルネットワーク

Twittelator Pro
\600
http://itunes.apple.com/jp/app/twittelator-pro/id288963578?mt=8
リスト対応

Tweetie 2
\350
http://itunes.apple.com/jp/app/tweetie-2/id333903271?mt=8
リスト対応

TwitBird Premium
¥230
http://itunes.apple.com/jp/app/twitbird-premium/id307876729?mt=8
リスト対応

Tweetery
\230
http://itunes.apple.com/jp/app/tweetery-twitter-made-easy/id334303843?mt=8

Twitterrific
無料
http://itunes.apple.com/jp/app/twitterrific/id284540316?mt=8
有料版もある

Echofon for Twiiter
無料
http://itunes.apple.com/jp/app/echofon-for-twitter/id286756410?mt=8

NatsuLion for iPhone
無料
http://itunes.apple.com/jp/app/natsulion-for-iphone/id289977677?mt=8

TweetDeck for iPhone
無料
http://itunes.apple.com/jp/app/tweetdeck-for-iphone/id318518757?mt=8

私自身、Twitter についてよく理解していません。時間的余裕もないので、発言もしていません。そのため、ホームとリストの閲覧が、私の Twitter の利用目的なっています。リストに対応した Twitter アプリを探すと、次の3つが対応していました。

Twittelator Pro
Tweetie 2
TwitBird Premium

一番使いやすかったのが Twittelator Pro でした。ただし、最新の発言が20個までしか読むことができません。1日に1,2回しか起動しない私には物足りません。

Twitter API Wiki / API Overview
http://apiwiki.twitter.com/API-Overview

それで Twitter API が REST を使用しているので、試しに自分専用の Twitter アプリを作ってみることにしました。私専用なので、リストとホームが見れるようにし、発言の仕組みは省くことにしました。

Twitter API Wiki / Twitter API Documentation
http://apiwiki.twitter.com/Twitter-API-Documentation

の statuses/home_timeline を確認しました。

Twitter API Wiki / Twitter REST API Method: statuses home_timeline
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-home_timeline

http://api.twitter.com/1/statuses/home_timeline.format

format は、拙作 iYKRSS [ http://itunes.com/apps/iYKRSS ] のソースが再利用できるので xml を選びました。

また、Requires Authentication で OAuth は難しそうなので Basic Auth を利用することにしました。

Basic access authentication - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Basic_authentication
2010/11/14(Sun) 現在 Twitter の認証方式で Basic 認証 (Basic Auth) は、廃止になりました。OAuth 認証の簡易版 xAuth を利用した記事を [  id:KYoshiaki:20100919 ] で公開しています。

最初 Basic Auth は、

Uniform Resource Locators (URL)
http://www.ietf.org/rfc/rfc1738.txt?number=1738

3.1. Common Internet Scheme Syntax

//:@:/

で大丈夫なのかと思いましたが、非公開リストのデータの取得に失敗するので、MGTwitterEngine を参考にしました。MGTwitterEngine のソースは Terminal 上で

svn checkout http://svn.cocoasourcecode.com/MGTemplateEngine

を実行するすればダウンロードできます。


since_id で指定すれば、簡単に発言を遡ってダウンロードできるものと思っていたのですが、最新20個しかダウンロードしてくれません。

仕方のないので、パラメーター count を使って 最新の発言 200 個をダウンロードし、前回の最新発言 id 以降のデータを探し、追加するようにしました。結局、未読の発言を最大 200 個まで遡ることができるようになりました。


また、リストの取得には

Twitter API Wiki / Twitter REST API Method: GET lists
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-GET-lists

を利用し、follow しているリストは GET list subscriptions

Twitter API Wiki / Twitter REST API Method: GET list subscriptions
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-GET-list-subscriptions

で取得できるようです。


簡単にテキストから URL 抽出をしたかってので、

iPhoneアプリ正規表現を使う - 24/7 twenty-four seven
http://d.hatena.ne.jp/KishikawaKatsumi/20081031/1225463896

を参考に正規表現を利用しました。RegexKitLite を使用するには libicucore.dylib をリンクする必要があります。

一番簡単なリンク方法は Xcode でターゲット名を選択し、

'メニュー/ファイル/情報を見る' か Option キーを押したまま、'メニュー/ファイル/インスペクタを表示' を選びます。

ターゲット "iYKTwitter" の情報というウインドウが表示されるはずです。

'一般' タブをクリックし、リンク済みライブラリの下の '+' ボタンを押し、スクロールして libicucore.dylib を追加してください。

libicucore.dylib を Frameworks のフォルダに移動しておくと良いかもしれません。

何とか、動作できるようになりました。プロフィール画像や日付の表示には対応していませんが、私的に利用するには十分です。最後にスクリンキャプチャーを付けておきます。