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.
Om mee te gaan, zou je het volgende moeten hebben:
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.
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.
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.
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:
android.permission.INTERNET
toestemming moet worden aangevraagd.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
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.
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.
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");
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:
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.
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.