MyTwitter

MyTwitterTatsuya Blog

MyTwitterとは

中国はGFWのおかげで外国の主要なWEBサービスが遮断されています。Twitterもそのうちの一つで、中国国内から利用するにはVPN等を利用してGFWをくぐり抜ける必要があります。AndroidでVPNを使う場合、不安定で接続がちょくちょく切れるのと、バッテリーの消費が格段に激しくなります。VPN+Tetheringなんかをやった日には・・・。

そこで、中国国外に自分専用のWebAPIサーバを設置し、そこを経由してTwitterへアクセスするためのWebAPIと専用のAndroidクライアントを作りました。なぜ、自分専用のWebAPIが必要かというと、WebAPI側でユーザを管理する機能を実装していないためです。いずれ作成しようかと考えていますが、まずは、Androidクライアント側をメインに実装していくつもりです。

全体的に試作臭が高くなっていますが、ホームのTL、ツイート、公式・非公式リツイート、リプライができます。もちろん、画像のインライン表示なんておしゃれな事には対応していません。

スクリーンショット

タイムライン
Home Timeline

ツイート長押し時
Favorite機能を追加

ツイートに複数のURLが含まれる時に「URLs」をタップした場合
複数のURLが存在する場合

入力画面
入力画面

設定画面
自分のユーザ情報を取得できるようにした。

自分でコンパイルしたい方は、各モジュールのダウンロードは下記から行ってください。

環境構築手順

githubで管理している各モジュールのビルド環境構築までの手順をざっくり書きたいと思います。

各モジュール

Twitterへアプリの登録

まずは、自分専用のアプリをTwitterへ登録します。
登録した際に表示される下記の情報は後で使用するのでメモっておいてください。

  • Consumer key
  • Consumer secret
  • Access Token
  • Access Token Secret

Settingをクリック
Screenshot-Twitter-1

Connections->Developers->hereをクリック
Screenshot-Twitter-2

Register a new applicationをクリック
Screenshot-Twitter-3

Application TypeをClient、Default Access typeをRead & Writeにチェックし、他の情報を入力。Saveをクリック。
Screenshot-Twitter-4

Consumer key, Consumer secretをメモ
Screenshot-Twitter-5

Twitter Applications | dev.twitter.comにアクセスし、先ほど登録したアプリケーションをクリック
Screenshot-Twitter-6

My Access Tokenをクリック
Screenshot-Twitter-7

Access Token, Access Token Secretをメモ
Screenshot-Twitter-8

MyTwitter-WebAPI

fukata/MyTwitter-WebAPIをgit cloneします。

Document Root

apiディレクトリにWEBサーバのDocument Rootを設定します。また、同ディレクトリには、.htaccessを適用可能にしてください。
例:Document Root /var/www/mytwitter/api/

OAuth情報

api/system/application/config/config.phpの下記にTwitterアプリを登録した際にメモっておいた情報を当て込みます。

/*
|--------------------------------------------------------------------------
| Twitter
|--------------------------------------------------------------------------
|
| Edit your twitter oauth information.
|
*/
$config['consumer_key'] = '';
$config['consumer_secret'] = '';
$config['oauth_token'] = '';
$config['oauth_token_secret'] = '';

DocumentRootではなく、サブディレクトリに配置する場合

例:
DocumentRoot: /var/www/api/
MyTwitter-WebAPIのディレクトリ: /var/www/api/mytwitter-webapi/

MyTwitter-WebAPIディレクトリ直下にある.htaccessを下記のように環境に合わせて修正します。
{}内が今回の例題環境に合わせた設定部分になります。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /{mytwitter-webapi}/index.php/$1 [L]

MyTwitter-Android

前提条件

  • IDE: Eclipse+EGit
  • Java Compiler: 1.6

まず、下記をそれぞれgit cloneします。

Repositoryの追加

Gitプロジェクトの追加。File->Import->Git
Screenshot-Git-1

ローカルリポジトリを追加。Addをクリック
Screenshot-Git-2

git cloneしたリポジトリを指定して、Searchを実行後、対象のリポジトリにチェックし、OKをクリック
Screenshot-Git-3

Nextをクリック
Screenshot-Git-4

キャプチャの通りにチェックし、Nextをクリック
Screenshot-Git-5

取り込むプロジェクトをチェック(各モジュールで1つしかありません)し、Finishをクリック
ここまでの工程をモジュール3つ分繰り返します
Screenshot-Git-6

ExAndroid, xstream-for-androidにて、
プロジェクトを右クリック->Properties->Java Build Path->Libraries->andorid.jarを各自のパスに変更
Screenshot-Git-7

MyTwitter-Androidにて、
プロジェクトを右クリック->Properties->Java Build Path->Sourceで、ExAndroid, xstream-for-androidまでのパスを各自の環境に合わせます
Screenshot-Git-8

と、ここまでが、ざっくりした環境構築手順になります。

ダウンロード

Android Marketからクライアントアプリのみのダウンロードは下記のQRコードから。
MyTwitter-QR

関連記事


関連記事一覧を見る

その他

ご意見、ご要望などございましたら、コメントよろしくお願いします。