0

この質問はすでに聞かれていることを知っています。twitter fabrics sdk を読みました。とそのAuthですが、私はそれを理解するのがとてもばかげています。以下は私が欲しいキーポイントです

私が欲しいもの

  1. ハッシュタグに基づいてすべてのツイートを取得したい次は、#Wwe のモバイルツイートに必要なものの例です

  2. ユーザーが自分の Twitter アカウントにサインインする必要がないようにしたい。彼は私のアプリでつぶやきのリストを見て、自己更新してもらいます。

私は多くのチュートリアルに従いましたが、それらは役に立たず、ここや他のリンクからツイートを取得する方法も読んでいます。

どの認証が必要か教えてください。これらすべてを行う方法。そして、Twitterのログインなしで良いリンクをお願いします??

4

1 に答える 1

3

まず、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();
    }
}

結果:

ここに画像の説明を入力

于 2016-02-09T11:14:13.980 に答える