fc2ブログ

twitter4j 非同期APIの利用

twitter4j の非同期APIを利用することについて勉強中です

今回も、以前行った Ubuntu で行う予定でしたが
アップグレード失敗のため、バックアップをとった VM の仮想マシンから
復旧しました

このため、少し異なる環境になっています

まずは、再度 twitter4j のダウンロードページ
からダウンロードします

ダウンロードするのは
twitter4j-android-2.2.6-SNAPSHOT.zip(Android向けのスリムバージョン)
です

これをダウンロードしたら、
mkdir twitter4j
でディレクトリを作成して

cd twitter4j でディレクトリ移動し

unzip unzip ~/ダウンロード/twitter4j-android-2.2.6-SNAPSHOT.zip
で解凍します

次に、この解凍ディレクトリの中にある

twitter4j-async-android-2.2.6-SNAPSHOT.jar
twitter4j-core-android-2.2.6-SNAPSHOT.jar

Eclipse のライブラリに追加しますので
まず
追加したいプロジェクトを右クリックして
File > New > Folder

lib ディレクトリを作成します

次に、この lib ディレクトリに

これをダウンロードしたら、
mkdir twitter4j
でディレクトリを作成して

cd twitter4j でディレクトリ移動し

unzip unzip ~/ダウンロード/twitter4j-android-2.2.6-SNAPSHOT.zip
で解凍します

次に、この解凍ディレクトリの中にある

twitter4j-async-android-2.2.6-SNAPSHOT.jar
twitter4j-core-android-2.2.6-SNAPSHOT.jar
をコピーして

プロジェクトを右クリック > Properties

Java Build Path をクリックし
Add JARs ... をクリック

ディレクトリの中から
twitter4j-async-android-2.2.6-SNAPSHOT.jar
twitter4j-core-android-2.2.6-SNAPSHOT.jar
を選んでOKを押せば完了です

この2つのファイルは、解凍したファイルの
lib ディレクトリの中にあります
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

Twitter4j バージョンによる変更

Android web api プログラミング



参考に Twitter4j を使ってタイムラインを表示しようとしたのですが
import するところでつまづきました

import twitter4j.http.AccessToken;
import twitter4j.http.RequestToken;
この2つがインポートできずかなり悩みました

最初は、
twitter4j-android-2.2.6-SNAPSHOT.zip(Android向けのスリムバージョン)
というスリムバージョンをダウンロードしたのが原因かと思ったのですが

実際には、バージョンの違いによる変更が原因でした

参考書に載っていたのが ver2.1.12
今回使用しているのは ver 2.2.6 でした

バージョン 2.1.x から 2.2.x への移行
にこのあたりの変更点が載っていました

バージョンアップに伴い
twitter4j.http.* は twitter4j.auth.* へ移動しました。
ということでした

このため、
import twitter4j.auth.RequestToken;
import twitter4j.auth.AccessToken;
とすることでエラーがなくなりました

ちなみに、これに気がついたのは、
以前サーバー構築していたときに、バージョン違いにより再現できなくなることが
あると教えていただいたことを思い出したためでした

リファレンス関連の書籍の場合、このバージョン違いで
使い物にならなくなってしまうことがあるため
ある程度はネットで対処する必要性がありそうです

テーマ : プログラミング
ジャンル : コンピュータ

twitter4j クライアントテスト その2メモ

twitter4jのテストをしていて
すこし失敗したので、そのときのメモです

書籍どおりに行っているはずが
twitter = factory.getInstance();
と変更するはずが
Twitter twitter = factory.getInstance();
となっていたため、Android JUnit test でエラーになりました

ちなみに、このテストを行うと、実際につぶやきが行われますが

連続でテストするとエラーになるようです
これは
Twitter は同じ内容の当校を2回連続で行うとエラーになるそうです
なので、2回めからのテストには、

try{
Status status = twitter.updateStatus("Twitter4j のテスト");
printStatus(status);


"Twitter4jのテスト"
のところを
"Twitter つぶやきテストその2"
というように変更する必要があります

テーマ : プログラミング
ジャンル : コンピュータ

VMware Player と twitter API

twitter4j クライアントテスト
で実験したときと同じエラーがでたため
再検証しました

原因は、VMwarePlayer の仮想マシンでした

前回は、メールが届いていないのと、時刻合わせと両方しましたが
今回は、再起動と時刻合わせのみです

再起動すると問題が解決しましたので、ある程度の時刻がずれている場合
一度再起動したほうがよさそうです

テーマ : プログラミング
ジャンル : コンピュータ

twitter4j クライアントテスト

twitter4j の Android アプリ作成の勉強をしています

JUnit Test をしたときに


junit.framework.AssertionFailedError
at com.sample.test.TwitterTest.testTwitter(TwitterTest.java:86)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)

というエラーがでたため、VMware player の時刻合せをしたものの
エラーが治らないため
今度は、twitter のアカウントを確かめるため
twitter アカウントで再度ログイン

最初は、VMware の仮想マシンの時刻の問題、もしくは
twitter developers に登録したアプリの
Callback URL がダメなのかと思いましたが、ここではありませんでした

どうやらメールが届いていないというメッセージがでているので
再度プロフィールを確認

これでもまだエラーがでるため、再起動

なぜかこれで直りました

念のため、以前 作成したほうの Webアプリのサンプルのほうでも
実験してみましたが、問題なくコンパイルできました

次回、同じような現象がおきたら、もう一度探って見ようとおもいます

ちなみに、実行してエラーがない場合、タイムラインが
LogCat に表示されます

Screenshot-Ubuntu Android - VMware Player

テーマ : プログラミング
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック