API & Library

Kotlin ile Android’de Google Login

Yazılımcılar, mobil uygulama içinde kullanıcının sosyal medya ve mail hesaplarına (Facebook, Gmail vb.) bağlantı kurmalarını sağlayarak kullanıcıya kolaylıklar sağlamaktadır.

Bu makalede, Kotlin dili ile Android uygulamasında kullanıcının Google hesabına giriş ve profil bilgilerini gösterme işlemlerinin nasıl yapılacağını anlatacağım.

Dilerseniz Kotlin ile Android’de Facebook Login adlı makalemi okuyarak Kotlin dili ile Android uygulamasında kullanıcının Facebook hesabına giriş ve profil bilgilerini gösterme işlemlerinin nasıl yapılacağını öğrenebilirsiniz.

Şimdi örneğimizin çıktısına bakalım.

Bu örneği oluşturabilmek için sırasıyla adımlarımızı anlatmaya başlayalım.

1- Google Projesi Oluşturma

https://console.developers.google.com/ sayfasını açıp Google hesabınıza giriş yaptıktan sonra aşağıda belirttiğim yerden New Project alanını seçmelisiniz.

Açılan ekranda proje ismini yazıp Create butonuna tıklayınız. Projeniz oluştuktan sonra sol menüde APIs & Services alanını seçiniz. APIs & Services sayfasının sol menüsünde OAuth consent screen sayfasını açtıktan sonra External seçip Create tıklayınız.(Şekil-1)

Şekil-1

Bu sayfadan sonra  Şekil-2 resmindeki sayfa açılacaktır. Şekil-2 resminde belirttiğim alanları doldurup Save butonuna basınız.

Şekil-2

Açılan ekranda Scope tabındaki alanları doldurmanız gerekmemektedir. Cancel butonuna basmanız yeterlidir. Projemizde kullanacağımız Client Id’yi elde etmek için SHA-1 değerini oluşturmamız gerekir.

SHA-1 signing-certificate fingerprint oluşturma

SHA-1 oluşturmak için birden fazla yöntem bulunmaktadır. Ben size en kolay yöntemi göstereceğim. Android Studio’nın en sağ üst köşesinde Şekil-3’de belirttiğim Gradle alanını tıklayınız.

Şekil-3

Gradle bölümünde Proje ismi > app > Tasks > android  yolunu takip ettiğinizde signingReport alanını görecekseniz. Bu alana tıkladığınızda aşağıdaki resimdeki bölüm açılacak ve içinde SHA-1 değerinizi göreceksiniz.

Bu SHA-1 değerini kopyalayıp, bir doküman dosyasına kayıt edin. SHA-1’i bir sonraki adımlarda kullanacağız.

Client Id’yi Oluşturma

APIs & Services menüsündeki Credentials sayfasını açalım. Bu sayfada Create credentials alanına tıkladıktan sonra OAuth client ID ‘yi seçelim.

Önemli uyarı: Projenizde error code 10 hatasıyla karşılaşmamak için Client ID’yi oluştururken ilk önce Application type alanı Android, sonrasında ikinci Client ID’nin Application typeWeb Application seçerek oluşturmalısınız.

Çözümün detaylı anlatımı : Create OAuth client ID sayfasında Application typeilk önce Android seçin. Sonrasında elinizdeki SHA-1 değerini ve projenizin paket ismini belirttiğim alanlara ekleyiniz ve Create butonun tıklayın.

Sonrasında tekrar Create OAuth client ID sayfasını açıp, Application typeWeb Application seçerek oluşturmalısınız ve projenizde tipi Web application olan Client Id‘yi kullanacağız.

Credentials sayfasında listelenen Client Id’lerden tipi Web Application olanı aşağıdaki resimde belirttiğim ikona tıklayarak kopyalayanız.

Kopyaladığımız Client Id bir dokümana kayıt edin. Artık Android projemizi oluşturmaya hazırız…:)

4-Android Projede Bazı Ayarlar

İlk önce AndroidManifest.xml dosyanıza  aşağıdaki kodu ekleyerek internet izni vermelisiniz.

Projemin app dizinin altındaki build.gradle dosyasını açıyoruz. Dependencies kod bloklarının arasına aşağıdaki kodları yerleştirerek play-services-auth ve Picasso kütüphanelerini yüklüyoruz.

5- Google Login Button Oluşturma

Ben Google’un hazır butonuna kullanmayı tercih etmedim. Bunun sebebi tasarımcınızın farklı buton tasarımlarını kullanması durumunda, tasarımı kolaylıkla arayüze aktarmayı göstermektir. MainActivity sınıfında ilişkilendireceğimiz arayüz kodları:

6- Google Login Kontrolü ve Verileri Alma

İlk öncelikle Kotlin’de arayüz elementlerinin id bilgilerini kullanarak, elemente kolayca erişmek için id ‘kotlin-android-extensions’ kodunu projemin app dizinin altındaki build.gradle dosyasının plugins alanının içine eklemeliyiz. Bu durumu projede uyguladım.

MainActivity, Gmail hesabına giriş yapıp yapamadığının kontrolünü yaptıktan sonra kullanıcının bazı verilerine ulaşabilmemize sağlayan sınıfdır. Aldığımız bilgileri tasarımda göstermek için DetailsActivity sınıfına aktardım. Daha detaylı açıklama yorum(comment) tag larında bulunmaktadır.

7- Google Kullanıcı Bilgilerini Tasarımda Gösterme

Örnek deki detay sayfasının tasarımını yapabilmek için github linkinde bulunan proje içindeki activity_details xml dosyasını kullanabilirsiniz. DetailsActivity sınıfında da activity_details xml’ini kullandık. DetailsActivity sınıfında ise kullanıcı bilgilerini MainActivity sınıfından alıp, arayüz tasarımına aktardık. Profil resmini de Picasso kütüphanesini kullanarak arayüz de gösterilmesini sağladım.

Projenin tüm dosya ve kodlarına github linkinden ulaşabilirsiniz.

Bülten
Bültene abone ol

Bültene abone olarak yeni makalelerimden haberdar olun.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir