Search code examples
javascriptandroidtwittertwitter-fabrictwitter-widget

Show timeline of a specific twitter profile using twitter fabric sdk for android


i want to show a twitter user timeline on my app to get latest info of its account, i have followed a guide from this page

but it just show a spesific tweet (not timeline) using twit ID. here is my Twit.java please Help!

package com.bagen.ilok.urbancikarang;

import android.app.ListActivity;
import android.os.Bundle;

import com.twitter.sdk.android.Twitter;
import com.twitter.sdk.android.core.TwitterAuthConfig;
import com.twitter.sdk.android.core.TwitterException;
import com.twitter.sdk.android.core.models.Tweet;
import com.twitter.sdk.android.tweetui.CompactTweetView;
import com.twitter.sdk.android.tweetui.LoadCallback;
import com.twitter.sdk.android.tweetui.TweetViewFetchAdapter;

import java.util.Arrays;
import java.util.List;

import io.fabric.sdk.android.Fabric;


public class Twit extends ListActivity {


    List<Long> tweetIds = Arrays.asList(352633692885221376L);
    final TweetViewFetchAdapter adapter =
            new TweetViewFetchAdapter<CompactTweetView>(
                    Twit.this);

    // Note: Your consumer key and secret should be obfuscated in your source code before shipping.
    private static final String TWITTER_KEY = "(key)";
    private static final String TWITTER_SECRET = "(secret_key)";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
        Fabric.with(this, new Twitter(authConfig));
        setContentView(R.layout.activity_twit);
        setListAdapter(adapter);

        adapter.setTweetIds(tweetIds,
                new LoadCallback<List<Tweet>>() {
                    @Override
                    public void success(List<Tweet> tweets) {
                        // my custom actions
                    }

                    @Override
                    public void failure(TwitterException exception) {
                        // Toast.makeText(...).show();
                    }
                });
    }
}


Solution

  • I'd say you need access to Twitter's REST API:

    TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient();

    // use the client to make the call below (takes user_id): https://api.twitter.com/1.1/statuses/user_timeline.json

    Perhaps you could use twitter4j instead of fabric sdk? http://twitter4j.org/en/code-examples.html#gettingTimeline