Közösségi hálózatok integrálása Android platformon. Inotay Krisztián / inotay.krisztian@bmeautsoft.hu



Hasonló dokumentumok
Ez a megoldás azért is érdekes, hiszen jelenleg ma a mobil applikációk piacán ez egyedülállónak számít.

Mobil készülékek programozása

Android Wear programozás. Nyitrai István

Apple ID készítése és vásárlás az AppStore áruházban

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

Mozo mobileszköz menedzsment eszköz telepítése

HelpyNet kézikönyv LAKOSSÁGI FELHASZNÁLÓKNAK

Felhasználói útmutató CVR mobil kliens, ios rendszerhez.

Vízcenter. Mobil alkalmazás

Nokia N9 - MeeGo Harmattan bemutatkozik

Programozási technológia

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.0

Megjegyzés vezeték nélküli LAN felhasználóknak

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.3

Swing GUI készítése NetBeans IDE segítségével

Mobil Informatikai Rendszerek

Szakdolgozati, TDK témajavaslatok

ANDROID ALKALMAZÁS FEJLESZTÉS

A SatAlarm AVA alkalmazás használata

Taninform KIR kapcsolat

Telenor Magyarország MS Office 365 telepítési útmutató

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.2 TL280 (R) v.4.x modulokhoz

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Csavarda mobil áruház

Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.

NEPTUN MOBIL ALKALMAZÁS FELHASZNÁLÓI SEGÉDLET

API tervezése mobil környezetbe. gyakorlat

HIK-CONNECT szolgáltatás beállítása

ViCA. Virtuális chipkártya alkalmazás

Google Cloud Print útmutató

Mobil Informatikai Rendszerek

Használati utasítás.

Jogosultság kezelés és csoportkezelés a WebBér programban

EDUROAM wifi beállítás


Helyzetalapú szolgáltatások közösségi hálózatokon. Helyzetalapú szolgáltatások

Mobil Informatikai Rendszerek

3. Generációs WIFI Midea SK

Gyors beállítási útmutató

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Android Commander Felhasználói kézikönyv

Phonak Remote. Használati útmutató


Wi-Fi Direct útmutató

Dropbox - online fájltárolás és megosztás

Zoiper VoIP mobil alkalmazás szoftver beállítása Android rendszerre

TERC V.I.P. hardverkulcs regisztráció

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.0

Wi-Fi Direct útmutató

EPER - mobil Szakértői Integrált Pénzügyi Számviteli Rendszer

Fundimini.hu Felhasználói útmutató

ViCA. Virtuális Chipkártya Alkalmazás

1. Mire használható a ViCA (Virtuális Chipkártya Alkalmazás)?

EDUROAM WI-FI beállítása

A Measy A2W Miracast Stick bemutatása. A Measy A2W Miracast Stick jellemzői

Kézikönyv online bérletvásárláshoz

A Qpocket egy mobileszközökre optimalizált kupon applikáció

Google Cloud Print útmutató

Virtualoso Meeting Telefonkonferencia Használati Útmutató Belépés a Virtualoso Portal felületére

gyógyszer-információs alkalmazás

K&H token tanúsítvány megújítás

Hozzávalók keresése és csatolása

Erste Sorszámhúzó Felhasználói kézikönyv

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

Vodafone-os beállítások Android operációs rendszer esetében

Jelen leírás csak a DSC NEO központok és 3G2080 kommunikátor beállításait tartalmazza a ConnectAlarm mobilalkalmazáshoz.

Quick Start Guide. Home Security IP kamera. NVSIP alkalmazás csatlakozás

A mobil alkalmazás. Felhasználói útmutató - Android

QLink Universal SOFTPHONE - TELEPÍTÉSI ÚTMUTATÓ

GYORSINDÍTÁSI ÚTMUTATÓ

Szervlet-JSP együttműködés

OMRON connect okostelefon alkalmazás

MAGYAR. Android 4.0 vagy újabb, vagy ios 5.0 vagy újabb operációs rendszerű készülék. WiFi útválasztó.

Felhasználói leírás. LIFX GLS Gen1.

e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez

Facebook album beillesztése az oldalba

OMRON connect okostelefon alkalmazás

Mobil Informatikai Rendszerek

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Gyors, kényelmes, típusbiztos

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

DWG fájlok megosztása, megtekintése és szerkesztése bárkivel, bárhol, bármikor

Vectory telepítési útmutató

Google Cloud Print útmutató

cím létrehozása

Partner. kezelési útmutató

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

Rendszerkezelési útmutató

Alkalmazások és integráció. Készítette: Szabó Hangya Csilla

SharePoint Online. Keresés Webhelyek, személyek vagy fájlok között kereshet. Webhely vagy hírbejegyzés létrehozása

Knowledge Challenge Rendszer Használata. Keresés. Regisztráció. Belépés. Vásárlás. Fizetés. Végrehajtás. Létrehozás

Adóbevallás leadása elektronikusan

KEZELÉSI ÚTMUTATÓ WIFI ADAPTER

GPRS Remote. GPRS alapú android applikáció távvezérléshez. Kezelési útmutató

Az autorizáció részletes leírása

Moodle-integrálás intézményi környezetben

Cross platform játékmotor + szerkesztő Támogatott platformok

Felhasználói Kézikönyv

Átírás:

Közösségi hálózatok integrálása Android platformon Inotay Krisztián / inotay.krisztian@bmeautsoft.hu

Napjainkban Az egyes szociális hálózatok meghatározó szerepet töltenek be a felhasználók életében Nagy a felhasználói igény arra, hogy bármit megoszthassanak ismerőseikkel, minél gyorsabban Az egyes szociális hálózatok integrálása potenciálisan új felhasználókat jelenthet bármilyen alkalmazás számára A mobil alkalmazások fokozottan érintettek ebben A fejlesztőknek is szükségszerű követni ezt a trendet

Mire használhatjuk egyáltalán? Legalapvetőbb az SSO > A felhasználó regisztrál az alkalmazásba egy közösségi hálós fiókjával > A felhasználó belép az alkalmazásba ugyanezzel a fiókkal A felhasználó az alkalmazással előállított tartalmakat oszthat meg az ismerőseivel (esetleg a világgal) Képeket tölthet fel Eseményeket hozhat létre, ismerősöket hívhat meg rá Ezeket a funkciókat programozottan megvalósíthatjuk

3 kiválasztott platform Google+ Facebook Twitter A továbbiakban a fenti 3-ról fogok részletesen beszélni

Első lépések A legfontosabb: mindig olvassuk el az adott szociális hálózat szabályzatát (tudom, tudom ) Aztán a fejlesztői dokumentációt, de legalább azokat a részeket, amiket használni szeretnénk Mindhárom általam hozott platformnál ezek után létre kell hozni egy alkalmazást a platform fejlesztői oldalán. Ezen az alkalmazáson keresztül kommunikálunk a szociális hálózattal. Azonosítja a mi mobilos alkalmazásunkat.

Google+ alkalmazás Ez technikailag egy Google API Project A megszokott Google Developer Console-on lehet létrehozni Packagenameés szignatúra azonosítja az alkalmazásunkat (Android public API key) Engedélyezni kell a Google+ API-t A felület Credentialsrésze eléggé el van dugva, de ott lehet megadni a Google+ által a felhasználónak mutatott adatokat (app neve, ikon, etc) Enélkül hibát fog dobni az API hívás (nem, nem beszédeset)

Facebook alkalmazás A Facebook developeroldalán regisztrálhatja olyan Facebook felhasználó, aki developernek is regisztrál Valódi mobiltelefonszám kötelező, kódot küldenek rá UX szempontjából az oldal egy katasztrófa (elsőre még ijesztő is lehet) Cserébe 3-4 havonta lecserélik az egészet, de nem lesz jobb Az alkalmazáshoz külön kell készíteni Android, ios, web, etc, hozzáféréseket Androidnál package name és egy SHA-1-es keyhash szükséges A keyhash előállításához van példa a dev doksiban

Twitteralkalmazás Na ők korrektek A hagyományos módon a twitter developer oldalán lehet regisztrálni API key-tés secretetadnak, azzal lehet kapcsolódni az API-hoz Csak OAUTH2-vel lehet kommunikálni Az új Fabricviszont automatikusan legenerálja ezt nekünk (erről bővebben kicsit később)

Mivel érjük el az API-kat? Szerencsénkre mindhárom platformnak van már saját SDK-ja(bár a Twitteré még csak néhány hónapos) A Google+ SDK a GooglePlay Servicesrésze A Facebook SDK beszerezhető gradle-lel A Twitterhezmost két SDK létezik: > Twitter4j Java-raimplementált nem hivatalos SDK, a közelmúltig csak ez létezett (vagy a kézi URL hívások ugyebár). JAR-kéntszerezhető be. Viszont kell kódolnunk hozzá hívásokat, ugyanis ők nem ismerték az AsyncTask-ot > Fabric Twitter SDK ez az új, hivatalos SDK, gradle-lel importálható. A Fabric automatán be is húzza a projektünkbe, ha megkérjük rá.

Google+ és a GooglePlay Services Soha se felejtsük el ellenőrizni, hogy egyáltalán van-e GooglePlay Services a készüléken (GooglePlayServicesUtil) Mindössze 1 metódushívás Nem csak igen/nem lehet a válasz, hanem az is, hogy frissíteni kell a készüléken ezt a komponenst Szintén egy metódussal lokalizált dialógust lehet generáltatni a felhasználónak, ahol részletesen le van írva a probléma oka, illetve tartalmaz Intent-et a GooglePlay-hez is, frissítéshez vagy letöltéshez De ezt úgyis tudjátok

Google+ SDK part 1 Pillekönnyű a megvalósítás, csak néhány metódust tartalmaz Az API clientlétrehozásakor listenereketés jogokat kell mindössze átadni. Aztán meghívni egy connect() et, és kész a login Az API a listenerekenkeresztül szépen jelez, de ha hiba van, akkor nem jön egyértelmű üzenet, kb soha Nincs igazi példaalkalmazás. Csak pár metódushívást mutatnak be, de azok kidolgozatlanok. Például sehol nem kezelik benne, ha egy felhasználó nem-et nyomott, vagy bezárt egy, az API által létrehozott dialógust.

Google+ SDK part 2 Mindezek ellenére ha sikerül belőni, akkor könnyen használható Legalábbis ha csak az alapvető funkciókat szeretnénk igénybe venni. Viszont nincs belső session kezelés Ha szerver oldali autentikáció is kerül a képbe, akkor megbolondul egy kicsit a történet: A Google+ -osbejelentkezést követően egy olyan tokent kapunk, ami csak a mobil alkalmazáson belül érvényes Hoppsz

Google+ AuthorizationCode A GoogleAuthUtilosztállyal kérhetünk egy ilyen kódot magunknak (szintén dialógusos, engedélyköteles) Ezt a kódot elküldhetjük a szerverünknek Aki ezt becseréli egy token-re és egy refreshtoken-re A csere után az Authorization Code érvénytelenné válik A token-nelaszerver már hozzáfér az adott felhasználó profiljához (jogosultságok megadhatóak) Ha egyszer Androidonkérünk egy ilyet, akkor 15 percig mindig ugyanazt kapjuk vissza, hacsak kézzel nem forceoljuk, hogy törölje a cache-ből

Google+ SDK bosszantó hibák Ha egy képernyőn már hívtunk connect() et, akkor disconnect() hívása után a connect() többé nem fut le Soha A megoldás a reconnect() hívása Kösz! (reconnect()-et viszont hívhatunk a connect() helyett) Ha egy felhasználó először jelentkezik be, akkor a connectionfailedlistenerenjön egy üzenet, hogy nincs engedély a felhasználótól. Ilyenkor egy Activity.startIntentSenderForResult()-talkérhetünk egy engedélyező dialógust a felhasználónak. Viszont ehhez mindig kell activity context!

Facebook SDK alapok LoginButton customview CallbackManager LoginManager

Facebook LoginButton Felveszi a Facebook gomb dizájnját Viszont lehet style-ozni És nem mellesleg a háttérben kezeli a login flowt is, automatikusan Fura, de ha mást nem használunk, ennek a gombnak kell beállítani a szükséges Facebook permission-öket is

Facebook CallbackManager Korábban UiLifeCycleHelper néven futott Az a feladata, hogy kezelje az onactivtyresult() - ot Nekünk csak azt kell biztosítani, hogy létezzen, és onactivityresult-banmeghívni ezt az egyetlen metódusát Innentől kezdve ő maga kezeli a felugró dialógusokat, elnavigálásokat, amiket az SDK kezdeményez

Facebook LoginManager Korábban Session volt Programozottan kezelhetjük a felhasználó session-ét Beléptethetjük, kiléptethetjük a felhasználót kódból, ha rendelkezünk a megfelelő engedélyekkel Kezelhetjük a permission-öket Nem utolsó sorban pedig, vele irathatunkfel listenert a login flow eseményeire

Facebook SDK hiányosságok A tutorialokbantöbbnyire elnagyolják a magyarázatokat Gyakran hibás a tutorial, vagy a reference guide Ha hozzáadjuk a gradle fájlhoz a tutorialban szereplő mavenrepot, akkor bizony az letölt nekünk 4 gigányi olyan libet, amit nem használunk semmire Gyakran szeretik megváltozatni az SDK metódusait

TwitterSDK part 1 Nagyon friss A FabricAndroid Studioplug-in teszi bele a projektünkbe (ha akarjuk, lehet kézzel is) Szintén van egy Login gombja, ez kezeli a felhasználó session-ét Viszont itt ezzel iratkozhatunk fel az egyes eseményekre is onactivityresult() ot is neki kell átpasszolni

TwitterSDK part 2 Tartalmaz UI kit-et is, vagyis komplett listákat, listaelemeket és ezekhez tartozó adaptereket is tweetek megjelenítéséhez Valamint része egy tweet composer dialógus is Mivel friss, viszonylag egyszerű, és kevés funkciót tartalmaz

Összefoglalva Elmondhatjuk, hogy a G+ kicsit kilóg a sorból, mert a funkcionalitásának jórészét elfedi a Google Play Services Az új TwitterSDK úgy néz ki, mintha a tervezői nagyon sokat nézegették volna a Facebook SDKt;) (ez nekünk egyébként nem baj) Viszont ha ezeket egyszerre akarjuk használni egy alkalmazásban az nem egyszerű

Tippek A szociális funkciók használatához mindegyik SDK-nálszükséges, hogy bizonyos metódusokat, osztályokat minden szociális funkciót használó nézeten implementáljunk Ezért célszerű minimum egy ősosztályt gyártani, hogy ezeket az implementációkat egységesen tudjuk kezelni Ha több szociális platformhoz is csatlakozunk egyszerre, jó ötlet lehet, egy egységes interfész kialakítása.

Tippek 2 Legyünk nagyon türelmesek, mert sok probléma merülhet fel implementálás közben Az SDK-kgyakran változnak, akár gyökeresen is, ezért is ajánlott a hozzájuk tartozó implementációkat külön kezelni, hogy könnyen lehessen akár az egészet kicserélni

Kérdések? Inotay Krisztián / inotay.krisztian@bmeautsoft.hu