Üyelik işlemlerini basitleştirmek için bir çok farklı yöntem vardır. Fakat en sık kullanılan yöntem ise Facebook ile kayıt olmadır. Mobil uygulamalarımızda üyelik kaydı gerekliyse kesinlikle Facebook login gibi kullanımı basit olan apileri tercih etmeliyiz. Bu yazımızda android uygulamamıza Facebook login butonu nasıl ekleyeceğimizi öğreneceğiz.
Öncelikle Facebook developer sitesinden developer hesabı açmalıyız. Developer hesabımızı oluşturduktan sonra Add New App butonuna tıklayarak yeni bir application ekliyoruz.
Display Name ve Contact Email alanlarını doldurduktan sonra uygulamamız için kategori seçimini yapıyoruz. Product Setup ekranında facebook login butonuna tıklıyoruz. Devamında platform seçim ekranı geliyor. Platform olarak android seçiyoruz. Seçimi gerçekleştirdikten sonra Android SDK yı indirmemizi isteyecektir.
- Mininum SDK Api 15: Android 4.0.3 ve üzeri olmalıdır.
- Projemizde, App | Gradle Scripts | build.gradle. (Module: app) açıyoruz.
Dependencies içine kütüphanemizi ekliyoruz.
dependencies { compile 'com.facebook.android:facebook-android-sdk:[4,5)'
- Projemizi build ediyoruz.
- Activitymizde Facebook SDK import ediyoruz:
import com.facebook.FacebookSdk; import com.facebook.appevents.AppEventsLogger;
İşlemlerimizi yaptıktan sonra karşımıza çıkan ekranda uygulamamızın paket adını ve paket adı ile birlikte hangi activity de kullanacaksan activitymizin adını aşağıdaki gibi giriyoruz.
Paket adı işlemlerimizi tamamladıktan sonra “save” butonuna basıp değişiklikleri kaydediyoruz. Değişiklikleri kaydettikten sonra uygulamanız için bir tane key hash oluşturmanız gerekli. Key hash uygulamayı geliştirirken ve geliştirme aşaması bittikten sonra iki farklı şekilde oluşturulur. Geliştirme aşamasında aşağıdaki kodu kullanarak oluşturabilirsiniz.
try { PackageInfo info = getPackageManager().getPackageInfo( "fikirlaboratuvari.com.fblogin", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (PackageManager.NameNotFoundException | NoSuchAlgorithmException e) { e.printStackTrace(); }
Kodu activitye yapıştırdıktan sonra uygulamayı bir defa çalıştırmalısınız. Uygulamayı çalıştırdıktan sonra LogCat bölümünde aşağıdaki gibi çıktı almalısınız. Oluşturulan keyhash 28 karakterlidir.
Diğer yönetim ise keytool kullanarak oluşturmaktır. Mac için:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Windows için komut satırında çalıştırın:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
Geliştirme aşaması bittikten sonra (Windows, Mac):
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
Keyhash oluşturduktan sonra aşağıdaki gibi yapıştırıp kaydediyoruz.
Kaydettikten sonra bir sonraki aşamaya geçiyoruz. Eğer tek oturum açmayı aktifleştirmek istiyorsak “On” yaparak devam ediyoruz.
- Bu aşamada strings.xml dosyamızı açıyoruz.
/app/src/main/res/values/strings.xml
- Dosyamızda facebook_app_id adında yeni tag ekliyoruz.
- <string name=“facebook_app_id”>1100919763353382</string>
- AndroidManifest.xml dosyamızı açıyoruz. Gerekli olan internet iznimizi ekliyoruz.
- <uses-permission android:name=“android.permission.INTERNET”/>
- AndroidManifest.xml dosyamıza meta data yı ekliyoruz.
- <application android:label=“@string/app_name” …>;
…
<meta-data android:name=“com.facebook.sdk.ApplicationId”
android:value=“@string/facebook_app_id”/>
…
</application>
- <application android:label=“@string/app_name” …>;
- AndroidManifest.xml dosyamıza FacebookActivityi ekliyoruz.
- <activity android:name=“com.facebook.FacebookActivity”
android:configChanges=
“keyboard|keyboardHidden|screenLayout|screenSize|orientation”
android:label=“@string/app_name” />
- <activity android:name=“com.facebook.FacebookActivity”
Eğer uygulamanızda tarayıcıya yönlendirme gibi işlemleriniz varsa ve Facebook bilgilerini kullanmanız gerekliyse aşağıdaki işlemleri gerçekleştiriniz. Gerek yoksa bu aşamayı atlayabilirsiniz.
- strings.xml dosyamızı açıyoruz.
/app/src/main/res/values/strings.xml
- fb_login_protocol_scheme yeni bir tag ekliyoruz.
- <string name=“fb_login_protocol_scheme”>fb1100919763353382</string>
- AndroidManifest.xml dosyamıza aşağıdaki kodu ekliyoruz.
- <activity android:name=“com.facebook.CustomTabActivity” android:exported=“true”>
<intent-filter>
<action android:name=“android.intent.action.VIEW” />
<category android:name=“android.intent.category.DEFAULT” />
<category android:name=“android.intent.category.BROWSABLE” />
<data android:scheme=“@string/fb_login_protocol_scheme” />
</intent-filter>
</activity>
- <activity android:name=“com.facebook.CustomTabActivity” android:exported=“true”>
Tüm hazırlıklarımız tamamlandığına göre kodlama kısmına geçebiliriz. Kaynak kodlarımız buraya eklediğimizde yazı çok uzayacağı için kaynak kodları github hesabıma ekledim. İndirmek için TIKLAYINIZ. Kaynak kodlar içerisinde yorum satırlarıyla açıklama yapılmıştır.
Kaynak kodları android studio ile açtıktan sonra uygulamayı incelemenizi tavsiye ederim. Kendinize göre özelleştirebilirsiniz.
Uygulamayı telefonunuza yüklemek için apk çıkarmanız gerekmektedir. APK çıkarmak için üst menüden Build>>>Build APK tıklamanız yeterli olacaktır.
İyi günler, iyi kodlamalar. 🙂