2014-10-29 18 views
12

Sto tentando di utilizzare la nuova API Fabric che Twitter offre per consentire agli utenti di accedere alla mia app. Ho seguito esattamente il tutorial (almeno credo di averlo fatto, forse ho commesso qualche errore) here dopo aver impostato il mio progetto con tutti i passaggi necessari; Ora, quando ho colpito il pulsante di accesso e autenticare il tasto restituisce una risposta positiva, ma quando vado a prendere il Twitter Sessione dopo che ottengo un'eccezione che assomigliaTwitter Fabric Login per Android

Caused by: java.lang.IllegalStateException: Must start Twitter Kit with Fabric.with() first  

(ancora una volta, ho seguito il tutorial per un T fino a questo punto, ma se riesci a pensare a qualcosa, allora sarei disposto a provarlo)

+0

checkout seguente link: https://androidbeasts.wordpress.com/2015/07/22/twitter-fabric-integration/ – Aakash

risposta

14

Il Fabric SDK separa la funzionalità in moduli chiamati Kit. È necessario indicare quali kit si desidera utilizzare tramite Fabric.with(). Questo in genere viene fatto estendendo la classe Application di Android.

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

Maggiori informazioni: https://dev.twitter.com/twitter-kit/android/integrate

vedere l'esempio applicazione canonica a: https://github.com/twitterdev/cannonball-android

+0

Funzionante, grazie mille! –

+0

Ciao Luis, potresti aiutarmi per favore con la mia domanda [qui] (http://stackoverflow.com/questions/27190313/making-rest-api-calls-from-an-android-app-using-twitterapiclient-class) ... grazie in anticipo –

+0

Grazie mille! Ho usato l'integrazione automatica Fabric Studio di Android e ho completamente perso questo piccolo bocconcino di codice. Avevo bisogno di cambiare la chiave API e il segreto per un cliente e non avevo idea di dove trovarlo. – LukeWaggoner

2

Ultime Twitter integrazione con Android Studio

Questo collegamento sotto fornisce il codice di esempio è possibile utilizzare questo codice per integrare twitter latest sdk (Fabric). è fornire tutte le funzionalità che possiamo facilmente integrare meno tempo prendere

Twitter Sample code

Reference Code Plz check it

+1

Ciao, Sto riscontrando alcuni problemi con il kit di login di Fabric Twitter. Dal plug-in di Android Studio Farbic, nella schermata di scelta di un kit da installare, l'opzione è "Sconosciuto" invece di "Installa". Qualcun altro ha riscontrato questo problema? Devo dire che con un progetto da zero questo non succede. –

4

mio errore caso è: devono iniziare con Fabric.with() prima di chiamare kit Twitter

Soluzione:

Prima che io abbia usato: Fabric.with (questo, nuovo Crashlytic S()); & Fabric.with (questo, nuovo Twitter (authConfig)); Finalmente non funziona.

prima di integrare Twitter il mio codice è

- Fabric.with (questo, nuova Crashlytics());

Dopo Integrazione Twitter sostituisco con

- Tessuto.con (questo, nuovo Twitter (authConfig), nuovo Crashlytics());

Ora lavora come un fascino,

3

Ecco come ho implementato Twitter login con tessuto:

  1. chiave Declare twitter e segreto:

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

    //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(); 

        } 
       }); 
    } 

Hai username e profilepicture url nella login() a usa dove vuoi

+0

Puoi dirmi per favore come posso reindirizzare l'utente alla schermata di login di twitter (se non è loggato) dell'applicazione se è installata o al browser? –

Problemi correlati