Twitter Fabric Login for Android

前端 未结 4 1587
逝去的感伤
逝去的感伤 2021-02-13 13:36

I\'m attempting to use the new Fabric API that Twitter is offering to let users login to my app. I\'ve followed the tutorial exactly (at least I think I have, maybe I\'ve made s

4条回答
  •  遇见更好的自我
    2021-02-13 14:22

    Here's how I implemented Twitter login with fabric:

    1. Declare twitter key and secret:

       private static final String TWITTER_KEY = "r5nPFPbcDrzoJM9bIBCqyfHPK";
       private static final String TWITTER_SECRET = "oJ8y2KPIySPpoBX3eCcqgcnmPGXLI94BR4g9ZztnApSmXQG9Ij ";
      
       //Twitter Login Button
       TwitterLoginButton twitterLoginButton;
      
    2. onCreate() method:

      //Initializing TwitterAuthConfig, these two line will also added automatically while configuration we did
      TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
      Fabric.with(this, new Twitter(authConfig));
      
      setContentView(R.layout.activity_main);
      
      //Initializing twitter login button
      twitterLoginButton = (TwitterLoginButton) findViewById(R.id.twitterLogin);
      
      //Adding callback to the button
      twitterLoginButton.setCallback(new Callback() {
          @Override
          public void success(Result result) {
              //If login succeeds passing the Calling the login method and passing Result object
              login(result);
          }
      
          @Override
          public void failure(TwitterException exception) {
              //If failure occurs while login handle it here
              Log.d("TwitterKit", "Login with Twitter failure", exception);
          }
      });
      

    3.override onActivityResult() :

    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            //Adding the login result back to the button
            twitterLoginButton.onActivityResult(requestCode, resultCode, data);
        }
    

    4.finally, login():

    public void login(Result result) {
    
    //Creating a twitter session with result's data
            TwitterSession session = result.data;
    
            //Getting the username from session
            final String username = session.getUserName();
    
            //This code will fetch the profile image URL
            //Getting the account service of the user logged in
            Twitter.getApiClient(session).getAccountService()
                    .verifyCredentials(true, false, new Callback() {
                        @Override
                        public void failure(TwitterException e) {
                            //If any error occurs handle it here
                        }
    
                        @Override
                        public void success(Result userResult) {
                            //If it succeeds creating a User object from userResult.data
                            User user = userResult.data;
    
                            //Getting the profile image url
                            String profileImage = user.profileImageUrl.replace("_normal", "");
    
                            Log.d("done","name-->"+username + "url-->"+profileImage);
                           // Toast.makeText(this,"name-->"+username + "url-->"+profileImage,Toast.LENGTH_LONG).show();
    
                        }
                    });
        }
    

    You have username and profilepicture url in login() to use wherever you want.

提交回复
热议问题