Snabbtips Autentisering med Twitter och Fabric

Användare som just har laddat ner din Android-app kommer att bli mycket lyckligare om du tillåter dem att logga in med hjälp av en populär socialt nätverkstjänst istället för att fråga dem att fylla i ett registreringsformulär. I det här snabba tipset kommer du att lära dig hur du gör det möjligt för dina användare att logga in i din app med sina Twitter-konton.

förutsättningar

För att följa med, bör du ha följande inställning:

  • den senaste versionen av Android Studio
  • ett Twitter-konto
  • ett tygkonto

Tyg är Twitters ramar för att utveckla mobila applikationer. Det ger en uppsättning verktyg för att göra mobil utveckling enklare och mer strömlinjeformad. Den innehåller kraschrapportering, beta-distribution, mobilanalys etc. Om du inte har ett Fabric-konto än, måste du begära en inbjudan och vänta på en dag eller två.

1. Registrera din app

Alla appar som behöver interagera med Twitters API: er bör registreras med hjälp av Twitter Application Management-konsolen. Använd ditt Twitter-konto för att logga in.

Klicka på Skapa ny app knappen och fyll i formuläret. Ange meningsfulla värden i namn och Beskrivning fält, eftersom dessa kommer att visas för din apps användare. Vi kommer inte behöva Hemsida och Återuppringningsadress för denna handledning, men du kan inte lämna dem tomma. Om du har din egen hemsida kan du använda adressen här. Om du inte gör det kan du helt enkelt skriva in http://example.com.

Godkänn avtalet och skicka formuläret. Din app är nu registrerad.

Klicka på Nycklar och åtkomsttoken fliken och notera din Konsumentnyckel och Konsumenthemlighet. Vi behöver dem senare.

2. Installera Tyg för Android Studio

Logga in på ditt tygkonto och ladda ner plugin för Android Studio.

När nedladdningen är klar startar du Android Studio och väljer Konfigurera> Plugins.

Klicka på Installera plugin från disken knappen och välj filen du just laddade ner. När du är installerad bör du kunna se Tyg för Android Studio i listan med plugins.

3. Använd Fabric Plugin

Skapa ett nytt projekt (eller öppna en befintlig) och klicka på Fabric-ikonen. Logga in på ditt tygkonto och välj Twitter att installera Twitter Kit för ditt projekt.

Eftersom vi bara använder Twitter Kit för att logga in på Twitter, välj Logga in med Twitter på nästa skärm.

Slutligen kommer du att visa de kodändringar du behöver göra i ditt projekt. Först kommer du se de förändringar du behöver göra i build.grade fil. Du kan enkelt kopiera och klistra in dessa ändringar.

Därefter när du väljer fliken för AndroidManifest.xml, du kommer att se att två tillägg måste göras:

  • Att interagera med Twitters servrar, den android.permission.INTERNET tillstånd måste begäras.
  • Den automatiskt genererade API-nyckeln bör nämnas i form av meta-data. Återigen kan du helt enkelt kopiera och klistra in koden som visas av plugin.

Du kommer se att en ny fil heter fabric.properties har skapats i din app katalogen. Öppna filen och lägg till samma API-nyckel till den som visas nedan.

apikey = 21212qu6q5izhayqwywqwz1ghyuiopqwq211wqqwq12341

4. Skapa en aktivitet

I denna handledning kommer vi att skapa en mycket enkel Aktivitet som visar en inloggningsknapp och a Textview som visar resultatet av inloggningsförsöket.

Steg 1: Definiera layouten

Skapa en ny layout XML kallad login_activity.xml i res / layout katalogen. Lägg till en TwitterLoginButton med följande kodbit:

Lägg sedan till en Textview för att visa resultaten av inloggningsförsöket.

Steg 2: Skapa klassen

Skapa en ny Java-klass som utökar Aktivitet klass och åsidosätta dess onCreate metod. Använda sig av setContentView att använda layout XML som vi skapade i föregående steg.

Hämta widgets definierade i XML med hjälp av findViewById metod. Du kan lämna Textview tom, men jag ska använda setText metod och visa a Sträng det säger "Status: Klar".

Vid denna tidpunkt ska din klass ha följande kod i den:

public class LoginActivity utökar aktivitet privat TwitterLoginButton loginButton; privat textvisningsstatus @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.login_activity); loginButton = (TwitterLoginButton) findViewById (R.id.twitter_login_button); status = (TextView) findViewById (R.id.status); status.setText ("Status: Klar"); 

När du klickar på plugin-ikonen igen och klickar på fliken för Starta aktivitet, Du hittar koden som måste läggas till för att initiera Fabric. Kopiera och klistra in den här koden i onCreate metod innan samtalet till setContentView.

TwitterAuthConfig authConfig = ny TwitterAuthConfig (TWITTER_KEY, TWITTER_SECRET); Fabric.with (det här, nya Twitter (authConfig));

Pluggen genererar egna värden för konsumentnyckel och konsumenthemlighet. Medan du kan använda dessa värden använder vi de värden vi fick när vi registrerade vår ansökan i Twitter Applikationshantering konsolen tidigare. Koden för att använda dessa värden ska se ut så här:

privat statisk slutsträng TWITTER_KEY = "qweYTYiqer5tTeqiq1"; privat statisk slutsträng TWITTER_SECRET = "wuquUUwy1626661719qw8wwWQHEJQ";

Genom att klicka på inloggningsknappen startas en extern Aktivitet som returnerar ett resultat. För att fånga det resultatet, åsidosätta onActivityResult metod för Aktivitet och skicka de argument som mottas till onActivityResult Metod för knappen:

@Override protected void onActivityResult (int requestCode, int resultCode, Intent data) super.onActivityResult (requestCode, resultCode, data); loginButton.onActivityResult (requestCode, resultCode, data); 

För att bearbeta resultatet av inloggningsförsöket måste du skapa en anpassad Ring tillbaka. Skapa en intern klass som heter LoginHandler som sträcker sig Ring tillbaka, och åsidosätta alla dess abstrakta metoder.

Namnen på metoderna i denna klass är mycket intuitiva. Vid en lyckad inloggning, Framgång Metoden heter. Annars är det fel Metoden heter.

privatklass LoginHandler utökar återuppringning @Överhoppa offentlig tomgångssucces (Resultat twitterSessionResult)  @Override public void failure (TwitterException e) 

För TwitterLoginButton att använda denna anpassade återuppringning, i onCreate metod för Aktivitet, passera en förekomst av LoginHandler till knappens setCallback metod.

loginButton.setCallback (ny LoginHandler ());

Vid ett framgångsrikt inloggningsförsök visas namnet på den inloggade användaren och autentoken. Båda värdena är tillgängliga från data fält av Resultat. För att få användarnamnet för den inloggade användaranvändningen getUsername. På samma sätt, för att få autentoken användning getAuthToken. Lägg till följande kod till Framgång metod:

String output = "Status:" + "Din inloggning var framgångsrik" + twitterSessionResult.data.getUserName () + "\ nAuth-Token mottagen:" + twitterSessionResult.data.getAuthToken (). Token; status.setText (utgång);

Om ett misslyckat inloggningsförsök visas, visas ett meddelande som säger "Inloggningen misslyckades". Lägg till följande i fel metod:

status.setText ("Status: Inloggning misslyckades");

Steg 3: Uppdatera manifestet

Definiera Aktivitet du har just skapat i ditt projekt manifest. Om det är din apps första Aktivitet, skapa ett avsikt filter så att det svarar på android.intent.action.MAIN. Lägg till följande kod i din fil:

     

5. Bygg och kör

Din app är nu klar att köras. När du bygger och kör det på din Android-enhet, kommer du att hälsas med följande skärm:

Om du knackar på inloggningsknappen kommer du vidarebefordras till Twitter. Observera att applikationsnamnet och beskrivningen du angav i det första steget i denna handledning visas på den här sidan.

När du trycker på Godkänn app knappen, inloggningsförsöket anses vara framgångsrikt och du omdirigeras tillbaka till din app. Du kommer att se att Textview uppdateras för att visa användarnamnet och auth token.

Slutsats

I det här snabba tipset har du lärt dig hur du aktiverar appens användare att logga in med Twitter. Du lärde dig också att installera Fabric plugin för Android Studio och hur du använder det för att lägga till Twitter Kit till ditt projekt. För mer information om Fabric och Twitter Kit, se Twitter Kit for Android-dokumentationen.