Cocos2d-xとTwitter Kitを使ってOAuth認証&ユーザタイムライン取得-Android編その3
Cocos2d-xとTwitter Kitを使ってOAuth認証&ユーザタイムライン取得-Android編その2の続き。
前回Twitterにログイン出来たので、Rest APIが使えるようになります。
今回はシングルツイートの取得をします。
まずはコード
xxxxxxxxxxの所にツイートidが入ります。何故か最後にLをつけるようです。
nullになっているパラメータの内容はGET statuses/show/:idを見てください。
ほかは基本的にAccess Twitter's REST APIと同じですが、CountDounLatchを使ってレスポンスが帰ってくるのを待っています。
result.dataにデータが格納されています。GET statuses/show/:idにデータ構造が載っているので、ここを見れば色々な情報を取り出せます。
例えば"result.data.createdAt"とすればツイート日時が取得できます。
jniを使ってAppActivityのshowTweet()を呼び出します。
NativeLauncher.h
NativeLauncher.cpp
戻り値があるメソッドを呼ぶ場合のjniの書き方はcocos2d-xでjniを使ってみるの下の方を見てください。
あとはcocosからNativeLauncher::showTweet();を呼ぶだけです。
出来ましたでしょうか。
続きCocos2d-xとTwitter Kitを使ってOAuth認証&ユーザタイムライン取得-Android編その4
前回Twitterにログイン出来たので、Rest APIが使えるようになります。
今回はシングルツイートの取得をします。
AppActivity.java
AppActivityでツイートのテキストを返すメソッドを作ります。まずはコード
static String tweet_text; public static String showTweet() throws InterruptedException{ final CountDownLatch cdl = new CountDownLatch(1); tweet_text = null; StatusesService statusesService = Twitter.getApiClient().getStatusesService(); statusesService.show(xxxxxxxxxxxxxxxxxL, null, null, null, new Callback<Tweet>() { @Override public void success(Result<Tweet> result) { tweet_text = result.data.text; cdl.countDown(); } public void failure(TwitterException exception) { System.out.println("failure"); } } ); cdl.await(); return tweet_text; }
xxxxxxxxxxの所にツイートidが入ります。何故か最後にLをつけるようです。
nullになっているパラメータの内容はGET statuses/show/:idを見てください。
ほかは基本的にAccess Twitter's REST APIと同じですが、CountDounLatchを使ってレスポンスが帰ってくるのを待っています。
result.dataにデータが格納されています。GET statuses/show/:idにデータ構造が載っているので、ここを見れば色々な情報を取り出せます。
例えば"result.data.createdAt"とすればツイート日時が取得できます。
NativeLauncher
jniを使ってAppActivityのshowTweet()を呼び出します。
NativeLauncher.h
#include <string.h> #include "cocos2d.h" using namespace std; using namespace cocos2d; class NativeLauncher{ public: static void loginTwitter(); static std::string showTweet(); };
NativeLauncher.cpp
#include <jni.h> #include "NativeLauncher.h" #include <string> #include "platform/android/jni/JniHelper.h" using namespace cocos2d; #define CLASS_NAME "org.cocos2dx.cpp.AppActivity" std::string NativeLauncher::showTweet(){ std::string tweet_text; JniMethodInfo JMI; if (JniHelper::getStaticMethodInfo(JMI, CLASS_NAME, "showTweet", "()Ljava/lang/String;")) { jstring jStr = (jstring)JMI.env->CallStaticObjectMethod(JMI.classID, JMI.methodID); tweet_text =JMI.env->GetStringUTFChars(jStr, NULL); JMI.env->DeleteLocalRef(JMI.classID); } return tweet_text; }
戻り値があるメソッドを呼ぶ場合のjniの書き方はcocos2d-xでjniを使ってみるの下の方を見てください。
あとはcocosからNativeLauncher::showTweet();を呼ぶだけです。
出来ましたでしょうか。
続きCocos2d-xとTwitter Kitを使ってOAuth認証&ユーザタイムライン取得-Android編その4
コメント