まず、Twitter アプリのキーとシークレットを使用して Fabric を初期化する必要があります。
public void initFabric(Context context){
if(!Fabric.isInitialized()) {
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(context, new Twitter(authConfig));
}else{
Log.d(TAG, "Fabric already initialized");
}
}
キーと秘密を秘密にしておくことを忘れないでください。
次に、次の方法で、アカウントとハッシュタグでツイートを取得できます。
public static TweetTimelineListAdapter retrieveTimeLineByHashtag(Context context, String hashtag){
Log.d(TAG, "Loading tweets with hashtag " + hashtag);
SearchTimeline searchTimeline = new SearchTimeline.Builder().query(hashtag).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(searchTimeline).build();
}
public static TweetTimelineListAdapter retrieveTimeLineByAccount(Context context, String account){
Log.d(TAG, "Loading tweets from user " + account);
UserTimeline userTimeline = new UserTimeline.Builder().screenName(account).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(userTimeline).build();
}
また、SearchTimeline は検索語を含む最近のツイートのみを検索するため、ツイートが返されないことを確認できます。しかし、Fabric を使用してハッシュタグでツイートを取得するより良い方法が見つかりませんでした。
編集:
public class Prueba extends AppCompatActivity {
private static final String TAG = "TWITTER_PRUEBA";
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_prueba);
bindUI();
initFabric(getApplicationContext());
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
TweetTimelineListAdapter adapter = retrieveTimeLineByHashtag(this, "#Wwe");
listView.setAdapter(adapter);
}
private void bindUI(){
listView = (ListView) findViewById(R.id.prueba);
}
public static void initFabric(Context context){
Log.d(TAG, "Initializing Fabric");
if(!Fabric.isInitialized()) {
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(context, new Twitter(authConfig));
}else{
Log.d(TAG, "Fabric already initialized");
}
}
public static TweetTimelineListAdapter retrieveTimeLineByHashtag(Context context, String hashtag){
Log.d(TAG, "Loading tweets with hashtag " + hashtag);
SearchTimeline searchTimeline = new SearchTimeline.Builder().query(hashtag).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(searchTimeline).build();
}
public static TweetTimelineListAdapter retrieveTimeLineByAccount(Context context, String account){
Log.d(TAG, "Loading tweets from user " + account);
UserTimeline userTimeline = new UserTimeline.Builder().screenName(account).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(userTimeline).build();
}
}
結果:
