Twitter Fabric Login for Android

前端 未结 4 1582
逝去的感伤
逝去的感伤 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<TwitterSession>() {
          @Override
          public void success(Result<TwitterSession> 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<TwitterSession> 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<User>() {
                        @Override
                        public void failure(TwitterException e) {
                            //If any error occurs handle it here
                        }
    
                        @Override
                        public void success(Result<User> 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.

    0 讨论(0)
  • 2021-02-13 14:30

    My case error is: Must start with Fabric.with() before calling twitter kit

    Solution:

    Before that I have used: Fabric.with(this, new Crashlytics()); & Fabric.with(this, new Twitter(authConfig)); Finally not working.

    Before Integrating Twitter my code is

    -- Fabric.with(this, new Crashlytics());

    After Integrating Twitter I replace with

    -- Fabric.with(this, new Twitter(authConfig),new Crashlytics());

    Now working like a charm,

    0 讨论(0)
  • 2021-02-13 14:31

    Latest Twitter Integration with Android Studio

    This below link provide the sample code you can use this code to integrate twitter latest sdk (Fabric). it's provide all feature we can easily integrate less time take

    Twitter Sample code

    Reference Code Plz check it

    0 讨论(0)
  • 2021-02-13 14:35

    The Fabric SDK separates functionality into modules called Kits. You must indicate which kits you wish to use via Fabric.with(). This is typically done by extending Android’s Application class.

    package com.example.app;
    import android.app.Application;
    
    public class MyApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
    
            TwitterAuthConfig authConfig = 
                       new TwitterAuthConfig("consumerKey",
                                             "consumerSecret");
    
            Fabric.with(this, new Twitter(authConfig));
    
            // Example: multiple kits
            // Fabric.with(this, new Twitter(authConfig),
            //                  new Crashlytics());
        }
    }
    

    More info: https://dev.twitter.com/twitter-kit/android/integrate

    See the canonical sample app at: https://github.com/twitterdev/cannonball-android

    0 讨论(0)
提交回复
热议问题