Android
Android Uygulamalarına Facebook Entegrasyonu
Mobil uygulama geliştiricileri sosyal medya ağlarının (Facebook, Twitter, Google+ vb.) API'lerini kendi mobil uygulamalarına entegre ederek, kullanıcıya kolaylıklar sağlamaktadır. Kullanıcı, mobil uygulama üzerinden sosyal medya hesaplarıyla giriş yaparak, kullanıcının duvarına yazı gönder...
Mobil uygulama geliştiricileri sosyal medya ağlarının (Facebook, Twitter, Google+ vb.) API'lerini kendi mobil uygulamalarına entegre ederek, kullanıcıya kolaylıklar sağlamaktadır. Kullanıcı, mobil uygulama üzerinden sosyal medya hesaplarıyla giriş yaparak, kullanıcının duvarına yazı gönderme, profil bilgilerini gösterme, arkadaş listesini görüntüleme gibi birçok işlevi mobil uygulama üzerinden yerine getirebiliyor.
Ben size bu yazımda, bir Android uygulamasına Facebook API'sini entegre ederek, kullanıcının Facebook hesabına giriş, duvarına yazı gönderme ve profil bilgilerini gösterme işlemlerinin nasıl yapılacağını anlatacağım.
Proje uygulayabilmek için yapılması gereken adımlar şu şekildedir:
- Facebook ayarları için Android uygulamasını imzalama
- Android uygulamasıyla Facebook uygulamasını ilişkilendirme
- Facebook API'sini entegre edeceğimiz Android uygulamasını oluşturma
Facebook ayarları için Android uygulamasını imzalama
Android uygulamamızın Facebook programıyla iletişime geçmesini sağlamak için yapacağımız ayarlardan ilki, Android uygulamamızı imzalamaktır. Android projemizi açıp, MainActivity sınıfının onCreate metodunun içine aşağıdaki kodu koyup, uygulamayı çalıştırıyoruz:
[code]try { PackageInfo info = getPackageManager().getPackageInfo( "com.tugbaustundag.facebookconnect",//Projenin paket ismini yazıyoruz 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 e) { Log.d("KeyHash:", e.toString()); } catch (NoSuchAlgorithmException e) { Log.d("KeyHash:", e.toString()); }[/code]
Logcat penceresinde KeyHash adındaki log bölümünde oluşturmuş olduğumuz hash bilgisini alıp, bir notepad dosyasına kaydedin. Bu hash bilgisini daha sonra Facebook uygulamasında kullanacağız.
Android uygulamasıyla Facebook uygulaması ilişkilendirme
Android uygulamasıyla Facebook uygulamasını ilişkilendirebilmek için, developer facebook sayfasından, yeni bir Facebook uygulaması oluşturmamız gerekir. Bu sayfayı açtıktan sonra, Add New App düğmesine tıklıyoruz.
Üstteki ekran görüntüsündeki Android simgesini seçiyoruz. Sonrasında, aşağıda gördüğünüz ekran görüntüsünde yer alan Create New Facebook App ID düğmesine tıklayacağız.
Son olarak açılan pop-up ekranda uygulama kategorisini belirleyip, Create App Id düğmesine basıyoruz. Böylelikle Ornek API Uygulama adlı Facebook uygulamamızı oluşturmuş olduk. Şimdi sırada Android uygulamamızı, Ornek API Uygulama adlı Facebook uygulamamıza tanıtmak var.
Developer Facebook sayfasının üst menüsünden My Apps'e tıklayıp, Ornek API Uygulama isimli uygulamamı seçiyorum.
Sonra üstte görünen sol menüden Settings bağlantısını açıyorum.
Üstteki ekran görüntüsünde kırmızı kare içine aldığım "Add Platform"u seçip, açılan pencerede Android simgesini seçiyoruz. Böylelikle, Ornek API Uygulama adlı Facebook uygulamamızla Android projemizi ilişkilendirmek için asıl ayarları yapacağımız bölümü oluşturmuş olduk.
Şimdi Android projemizle ilgili bilgileri bu platforma ekleyelim. Aşağıda göreceğiniz üzere, Google Play Package Name alanına Android projemizin paket ismini; Class Name alanına, Facebook ile ilgili işlemleri yapacağımız sınıf ismini (paketismi.sınıfismi şeklinde olmalı), Key Hashes alanında daha önce oluşturduğumuz hash değerini koyduk.
"Save Changes" düğmesine tıklayarak yaptığımız ayarları kaydediyoruz.
Böylelikle Facebook uygulamamızı oluşturduk. Menüdeki "My Apps" bölümünden oluşturduğumuz uygulamayı seçtiğimizde, uygulamanın özelliklerini barındıran sayfa açılacak. Buradan Facebook App ID'yi kopyalayıp, bir notepad dosyasına kaydedin. Daha sonra Facebook App ID'sini Android uygulamasıyla Facebook uygulamasını ilişkilendirirken kullanacağız.
Facebook API'sini entegre edeceğimiz Android uygulamasını oluşturma
Android Studio IDE'sini kullanarak yeni bir Android uygulaması açalım. Oluşturmuş olduğumuz Android uygulamasında, kullanıcının; Facebook hesabına giriş, duvarına yazı gönderme, profil bilgilerini gösterme gibi işlemleri yapmak istiyorsak, Facebook SDk'sını projemize eklemeliyiz.
Bu işlem Android Studio'da çok basit bir şekilde yapılabilmektedir. Bunun için build.gradle dosyasını açıp, dependencies içine
[code]compile 'com.facebook.android:facebook-android-sdk:3.23.1'[/code]
kodunu eklemeniz yeterlidir.
Şimdi ise, Android programlama yaparak, kullanıcının; Facebook hesabına giriş, duvarına yazı gönderme ve profil bilgilerini gösterme işlemlerinin nasıl yapılacağını anlatacağım.
Projeyi indirerek kodları içinde yorum satırlarındaki açıklamaları okumanızı sizden rica edeceğim:
https://github.com/tugbaustundag/Android-Uygulamasinda-Facebook-Entegrasyonu
Sonuç
Gördüğünüz üzere, bir Android uygulamasına Facebook işlevsetini eklemek, son derece kolay bir süreç.
Bir sonraki yazımızda sizlerle uygulamamızı Twitter ile konuşturacağız. O güne dek iyi kodlamalar!
Kaynaklar:
http://sunil-android.blogspot.com.tr/2013/08/facebook-integration-with-android-app.html
http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/
Açılış görseli: Pixabay (CCO Public Domain)
03.04.2015
Yorumlar
Merhaba,
Allah rızası için uygulamalarıma facebook reklam SDK sı yükleyecek birini arıyorum. Lütfen yardımcı olursanız sevinirim. Hangi yazılımcıya gittiysem yapamıyor.
KeyHash alamadım D/KeyHash:: android.content.pm.PackageManager$NameNotFoundException: com.islem.denemecalismasi hatası alıyorum. teşekkürler
md.update(signature.toByteArray());
toByteArray hatası alıyorum.
Yeni başladım programlamaya çözemedim
yardımcı olurmusunuz?
Şimdiden herkese teşekkür ederim.
merhaba, android studio sanırım yaz başında bazı değişiklikler yapmış, direkt olarak parseJson işlemiyle kullanıcı id, lokasyon gibi bilgileri alamıyoruz artık. JSONObject profile = Util.parseJson(facebook.request("")); bu şekilde bilgileri parse edemiyoruz. bunun yerine nasıl bir yöntem uygulayabiliriz acaba, bilginiz var mı ?
Sorunu çözdüm bu arada, graph api ile hallettim.
get profile information diyince Tugba Üstündağ'ın bilgilerini getiriyor? bir bilgisi olan var mı?
Arkadaşlar, övgülerniz için teşekkür ederim:)
Ahmet , getProfileInformation metodunda ,
//Kullanıcının user idsini kullanarak json string elde ettik
JSONObject profile = Util.parseJson(facebook.request("642373865")); bölümünde, örnek olarak kendi user id'mi kullandığım için benim bilgilerim gelmesi gayet normal.Bu user id değiştrip,kendi user id ni yazmalısın.
Çok faydalı bir makale olmuş bence. Tebrik ederim.
editText den aldıgım bir veriyi fotograf ile paylaşabilirim? Text paylaşımı ile ilgi kod bulamadım