Snelle tip authenticatie met Twitter en Fabric

Gebruikers die net je Android-app hebben gedownload, zullen veel gelukkiger zijn als je hen toestaat om in te loggen met een populaire sociale netwerkdienst in plaats van hen te vragen een registratieformulier in te vullen. In deze snelle tip leert u hoe u uw gebruikers kunt aanmelden bij uw app met hun Twitter-accounts.

voorwaarden

Om mee te gaan, zou je het volgende moeten hebben:

  • de nieuwste versie van Android Studio
  • een Twitter-account
  • een Fabric-account

Fabric is het framework van Twitter voor het ontwikkelen van mobiele applicaties. Het biedt een reeks hulpmiddelen om mobiele ontwikkeling eenvoudiger en meer gestroomlijnd te maken. Het bevat crash-rapportage, bèta-distributie, mobiele analyse, enz. Als u nog geen Fabric-account hebt, moet u een uitnodiging aanvragen en een dag of twee wachten.

1. Registreer uw app

Elke app die moet communiceren met de API's van Twitter moet worden geregistreerd met behulp van de Twitter Application Management-console. Gebruik uw Twitter-account om in te loggen.

Klik op de Maak een nieuwe app knop en vul het formulier in. Voer betekenisvolle waarden in de Naam en Omschrijving velden, omdat deze worden weergegeven aan de gebruikers van uw app. We hebben de. Niet nodig Website en Callback-URL voor deze zelfstudie, maar u kunt ze niet leeg laten. Als u een eigen website heeft, kunt u hier het adres gebruiken. Als u dit niet doet, kunt u gewoon http://example.com typen.

Accepteer de overeenkomst en dien het formulier in. Uw app is nu geregistreerd.

Klik op de Sleutels en toegangstokens tab en noteer je Gebruikers sleutel en Consumentengeheim. We zullen ze later nodig hebben.

2. Installeer Fabric voor Android Studio

Log in op je Fabric-account en download de plug-in voor Android Studio.

Zodra de download is voltooid, start u Android Studio en selecteert u Configureren> Plug-ins.

Klik op de Installeer plug-in van schijf knop en selecteer het bestand dat u zojuist hebt gedownload. Als het eenmaal is geïnstalleerd, zou u het moeten kunnen zien Stof voor Android Studio in de lijst met plug-ins.

3. Gebruik de stoffeninvoegtoepassing

Maak een nieuw project (of open een bestaand project) en klik op het Fabric-pictogram. Meld u aan bij uw Fabric-account en selecteer tjilpen om Twitter Kit te installeren voor uw project.

Omdat we Twitter Kit alleen gebruiken om in te loggen op Twitter, kies je Log in met Twitter in het volgende scherm.

Tot slot ziet u de codewijzigingen die u in uw project moet aanbrengen. Ten eerste ziet u de wijzigingen die u moet aanbrengen in de build.grade het dossier. U kunt deze wijzigingen eenvoudig kopiëren en plakken.

Vervolgens, wanneer u het tabblad kiest voor AndroidManifest.xml, je zult zien dat er twee toevoegingen moeten worden gedaan:

  • Om te communiceren met de servers van Twitter, de android.permission.INTERNET toestemming moet worden aangevraagd.
  • De automatisch gegenereerde API-sleutel moet worden vermeld in de vorm van meta-data. Nogmaals, je kunt gewoon de code kopiëren en tonen die door de plug-in wordt getoond.

U zult zien dat een nieuw bestand met de naam fabric.properties is gemaakt in uw app directory. Open het bestand en voeg dezelfde API-sleutel eraan toe, zoals hieronder wordt weergegeven.

apikey = 21212qu6q5izhayqwywqwz1ghyuiopqwq211wqqwq12341

4. Maak een activiteit

In deze tutorial zullen we een heel eenvoudige creatie maken Activiteit die een inlogknop en een toont Tekstweergave die het resultaat van de inlogpoging weergeeft.

Stap 1: Definieer de lay-out

Maak een nieuwe lay-out-XML met de naam login_activity.xml in de res / layout directory. Voeg een ... toe TwitterLoginButton met behulp van het volgende codefragment:

Voeg vervolgens een toe Tekstweergave om de resultaten van de inlogpoging weer te geven.

Stap 2: Maak de klas

Maak een nieuwe Java-klasse die de. Uitbreidt Activiteit klasse en overschrijven het onCreate methode. Gebruik setContentView om de lay-out-XML te gebruiken die we in de vorige stap hebben gemaakt.

Haal de widgets op die in de XML zijn gedefinieerd met behulp van de findViewById methode. Je kunt de Tekstweergave leeg, maar ik ga de gebruiken setText methode en weergave a Draad dat zegt "Status: Klaar".

Op dit punt moet uw klasse de volgende code bevatten:

public class LoginActivity breidt activiteit uit private TwitterLoginButton loginButton; privé TextView-status; @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: Gereed"); 

Klik nogmaals op het plug-insymbool en klik op het tabblad voor Begin activiteit, u zult de code vinden die moet worden toegevoegd om Fabric te initialiseren. Kopieer en plak die code in de onCreate methode, vóór de oproep naar setContentView.

TwitterAuthConfig authConfig = nieuwe TwitterAuthConfig (TWITTER_KEY, TWITTER_SECRET); Fabric.with (dit, nieuwe Twitter (authConfig));

De plug-in genereert zijn eigen waarden voor consumentensleutel en consumentengeheim. Hoewel je deze waarden kunt gebruiken, zullen we de waarden gebruiken die we kregen toen we onze applicatie registreerden in Twitter's Applicatiebeheer console eerder. De code om deze waarden te gebruiken zou er als volgt uit moeten zien:

private static final string TWITTER_KEY = "qweYTYiqer5tTeqiq1"; private static final String TWITTER_SECRET = "wuquUUwy1626661719qw8wwWQHEJQ";

Klikken op de login-knop start een extern Activiteit die een resultaat oplevert. Als u dat resultaat wilt vastleggen, overschrijft u het onActivityResult methode van de Activiteit en geef de ontvangen argumenten door aan de onActivityResult methode van de knop:

@Override beschermde leegte onActivityResult (int requestCode, int resultCode, Intent-gegevens) super.onActivityResult (requestCode, resultCode, data); loginButton.onActivityResult (requestCode, resultCode, data); 

Om het resultaat van de inlogpoging te verwerken, moet u een aangepast maken Bel terug. Maak een interne klasse met de naam LoginHandler dat breidt zich uit Bel terug, en negeer alle abstracte methoden.

De namen van de methoden van deze klasse zijn erg intuïtief. In geval van een succesvolle login, de succes methode wordt genoemd. Anders de mislukking methode wordt genoemd.

private class LoginHandler breidt Callback uit @ Overmatig openbaar ongeldig succes (resultaat twitterSessionResult)  @Override openbare nietige fout (TwitterException e) 

Voor de TwitterLoginButton om deze aangepaste callback te gebruiken, in de onCreate methode van de Activiteit, geef een instantie door van LoginHandler naar de knoppen setCallback methode.

loginButton.setCallback (nieuwe loginHandler ());

In het geval van een succesvolle inlogpoging, geeft u de naam van de aangemelde gebruiker en het auth-token weer. Beide waarden zijn beschikbaar via de gegevens gebied van Resultaat. Om de gebruikersnaam van de ingelogde gebruiker te gebruiken GetUserName. Evenzo, om het auth-token te gebruiken getAuthToken. Voeg de volgende code toe aan de succes methode:

String output = "Status:" + "Uw login was succesvol" + twitterSessionResult.data.getUserName () + "\ NAuth Token Received:" + twitterSessionResult.data.getAuthToken (). Token; status.setText (output);

In geval van een mislukte inlogpoging, geeft u een bericht weer dat zegt "Aanmelden mislukt". Voeg het volgende toe aan de mislukking methode:

status.setText ("Status: Aanmelden mislukt");

Stap 3: werk het manifest bij

Definieer de Activiteit je hebt zojuist in het manifest van je project gemaakt. Als dit de eerste van uw app is Activiteit, maak een intentiefilter aan zodat het reageert android.intent.action.MAIN. Voeg de volgende code toe aan uw bestand:

     

5. Build and Run

Uw app is nu klaar om te worden uitgevoerd. Wanneer u het op uw Android-apparaat maakt en uitvoert, wordt u begroet met het volgende scherm:

Als u op de aanmeldknop tikt, wordt u doorgestuurd naar Twitter. Merk op dat de naam en beschrijving van de applicatie die u in de eerste stap van deze tutorial hebt opgegeven, op deze pagina worden weergegeven.

Wanneer u op tikt Autoriseer app knop, wordt de inlogpoging als succesvol beschouwd en wordt u teruggeleid naar uw app. Je zult zien dat het Tekstweergave wordt bijgewerkt om de gebruikersnaam en het auth-token te tonen.

Conclusie

In deze snelle tip hebt u geleerd hoe u de gebruikers van uw app kunt aanmelden met Twitter. Je hebt ook geleerd hoe je de Fabric-plug-in voor Android Studio kunt installeren en hoe je hem kunt gebruiken om Twitter Kit aan je project toe te voegen. Raadpleeg de Twitter Kit voor Android-documentatie voor meer informatie over Fabric en Twitter Kit.