Согласно документации TwitterCore:
Самый простой способ аутентификации пользователя - использовать TwitterLoginButton.
Как вы аутентифицируете пользователя без TwitterLoginButton?
Согласно документации TwitterCore:
Самый простой способ аутентификации пользователя - использовать TwitterLoginButton.
Как вы аутентифицируете пользователя без TwitterLoginButton?
Взгляните на TwitterAuthClient.
Пример использования будет чем-то вроде (где getCallingActivity() может быть заменен вашим вызовом Activity),
TwitterAuthClient twitterAuthClient = new TwitterAuthClient();
twitterAuthClient.authorize(getCallingActivity(), new Callback<TwitterSession>() {
        @Override
        public void success(final Result<TwitterSession> result) {
            final TwitterSession sessionData = result.data;
            // Do something with the returned TwitterSession (contains the user token and secret)
        }
        @Override
        public void failure(final TwitterException e) {
            // Do something on fail
        }
    });
Затем делегируйте onActivityResult в TwitterAuthClient,
twitterAuthClient.onActivityResult(requestCode, resultCode, data);
Вам не нужно создавать кнопку для этого. В принципе, если вы вникнете в некоторые из классов, вы обнаружите, что код относительно прост. Итак, вот как я это сделал. Вам просто нужно позвонить TwitterAuthClient().authorize(Activity, Callback<TwitterSession)
Полный код:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
import com.twitter.sdk.android.core.Callback;
import com.twitter.sdk.android.core.Result;
import com.twitter.sdk.android.core.TwitterException;
import com.twitter.sdk.android.core.TwitterSession;
import com.twitter.sdk.android.core.identity.TwitterAuthClient;
/**
 * Created by Andrew on 6/23/15.
 */
public class ConnectTwitterActivity extends Activity {
    //The auth client itself
    /*you can abstract this and call TwitterCore.getInstance().login()
    but basically that call is doing this one.. 
    */
    TwitterAuthClient client;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //instanciate our client
        client = new TwitterAuthClient();
        //make the call to login 
        client.authorize(this, new Callback<TwitterSession>() {
            @Override
            public void success(Result<TwitterSession> result) {
                //feedback
                Toast.makeText(getApplicationContext(), "Login worked", Toast.LENGTH_LONG).show();
            }
            @Override
            public void failure(TwitterException e) {
                //feedback
                Toast.makeText(getApplicationContext(), "Login failed", Toast.LENGTH_LONG).show();
            }
        });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //this method call is necessary to get our callback to get called. 
        client.onActivityResult(requestCode, resultCode, data);
    }
}
Вероятно, вы захотите вызвать обычный механизм OAuth через нечто вроде Twitter4J. Если вы используете TwitterLoginButton, все это будет завершено для вас через функции в Twitter Kit.
Если ваша цель - не добавлять TwitterLoginButton в свои макеты, создайте TwitterLoginButton программно и вручную выполните событие click:
TwitterLoginButton button = new TwitterLoginButton(this);
button.setCallback(new Callback<TwitterSession>() {
    @Override
    public void success(Result<TwitterSession> result) {
        // Do something with result, which provides a TwitterSession for making API calls
    }
    @Override
    public void failure(TwitterException exception) {
        // Do something on failure
    }
});
button.performClick();
Ключевым моментом здесь является то, что после создания этой кнопки вы можете позвонить button.performClick() в удобное для вас время.