Android Fabric TwitterCore login without TwitterLoginButton

前端 未结 4 1790
别那么骄傲
别那么骄傲 2021-02-19 05:59

According to the TwitterCore documentation :

The simplest way to authenticate a user is using TwitterLoginButton.

How do you authent

4条回答
  •  面向向阳花
    2021-02-19 06:41

    You don't need to create a button for this. Basically, if you dig into some of the classes, you'll find that the code is relatively straightforward. So, here's how I did it. You just need to call TwitterAuthClient().authorize(Activity, Callback

    The full code:

    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() {
                @Override
                public void success(Result 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);
    
        }
    }
    

提交回复
热议问题