Google ile Oturum Açma kavram kılavuzu (Dialogflow)

Asistan için Google ile Oturum Açma (GSI), kullanıcılar için en sorunsuz bağlantı deneyimini sağlar ve geliştiricilerin uygulaması en kolay akıştır. GSI ile İşleminiz görüşme sırasında kullanıcınızın Google profiline erişim izni isteyebilir ve kullanıcı izin verirse kullanıcının adını, e-posta adresini ve profil resmini alabilir. İşleminiz daha sonra kullanıcının sisteminizde bir Google hesabı olup olmadığını kontrol etmek için bu bilgileri kullanabilir. Aksi takdirde İşleminiz kullanıcıya, Google profil bilgilerine göre sisteminizde yeni bir hesap oluşturmak isteyip istemediğini sorar.

GSI, aşağıdakilerden herhangi birinin geçerli olduğu durumlarda önerilen hesap bağlama çözümüdür:

  • Mevcut bir kimlik doğrulama sisteminiz yoktur ve/veya tüm kullanıcılarınızın bir Google Hesabı olmasını bekliyorsanız. Örneğin, İşleminiz özellikle Asistan'ı hedefliyorsa tüm kullanıcılarınızın Google Hesabı olmasını bekleyebilirsiniz.
  • Mevcut bir kimlik doğrulama sisteminiz var ve yalnızca Google hesaplarını kullanarak sisteminizde oturum açan kullanıcıları bağlamak istiyorsunuz.

GSI'nın sizin için doğru çözüm olduğunu doğrulamak için Hesap bağlama türünüzü seçin sayfasını inceleyin.

Anahtar terimler

GSI'nın işleyiş şekli hakkında bilgi edinmeden önce aşağıdaki terimlerle ilgili bilgi edinin:

  • Google kimlik jetonu: Kullanıcının temel Google profil bilgilerini (ad, e-posta adresi ve profil resmi) içeren, kullanıcı kimliğinin imzalı bir onayı. Google kimlik jetonu, JSON Web Jetonu'dur (JWT).

    Aşağıda kodu çözülmüş bir jeton örneği verilmiştir:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • Hesapta oturum açma yardımcı amacı: Asistan'dan hesap bağlama akışı istemek için çağırdığınız yardımcı niyet. Daha fazla bilgi için Hesapta Oturum Açma bölümüne bakın.
    • Bağlam dizesi: Hesapta oturum açma yardımcısı amacına eklediğiniz ve kullanıcıya neden hesabını bağlaması gerektiğini açıklayan özelleştirilmiş bir dize.

İşleyiş şekli

GSI için temel akış aşağıdaki gibidir:

  1. İşleminiz kullanıcıdan Google profiline erişmek için izin istiyor.
  2. Kullanıcı izin verdikten sonra İşleminiz, kullanıcının Google profil bilgilerini içeren bir Google kimliği jetonu alır.
  3. Profil içeriğini okumak için jetonu doğrulayın ve kodunu çözün. Node.js veya Java istemci kitaplığı için Actions on Google istemci kitaplığını kullanırsanız jetonu sizin yerinize doğrular ve kodunu çözer.
  4. İşleminiz kullanıcının Google profili bilgilerinin sisteminizde mevcut olup olmadığını kontrol etmek için bu jetonu kullanıyor.

    1. Bu durumda kullanıcı, Google hesabıyla sisteminizde zaten oturum açmıştır. Kullanıcı, Google hesabına bağlı kimliğini kullanarak Asistan ile görüşmeye devam edebilir.
    2. Aksi takdirde kullanıcı, Google kimliği jetonunda bulunan bilgilerle sisteminizde yeni bir hesap oluşturabilir. Kullanıcı daha sonra yeni hesabını bağlayarak Asistan'la görüşmeye devam edebilir.

Google ile Oturum Açma akışları

Bu bölümde, Google ile Oturum Açma ile oluşabilecek çeşitli akışlar açıklanmaktadır.

1. Akış: Sisteminizde kullanıcı bilgileri var

Aşağıdaki şemada, kullanıcının bilgileri sisteminizde zaten mevcut olduğunda GSI ile gerçekleşen uçtan uca akış gösterilmektedir:

Bu durumda, özelleştirdiğiniz bağlam dizesiyle actions.intent.SIGN_IN yardımcı niyetini çağırırsınız. Bu amaç, kullanıcıdan Google profil bilgilerine erişim izni ister.

Kullanıcı izin verdikten sonra Asistan, user@gmail.com için profil bilgilerini içeren bir istek gönderir. Bu durumda, user@gmail.com için Google kimliği jetonunda bulunan bilgiler sisteminizdeki bir hesapla eşleşir. Böylece kullanıcının İşleminizdeki kimliği otomatik olarak bu hesaba bağlanır. Daha sonra webhook'unuz kullanıcının veritabanından normal sırasını okuyup yanıt verebilir.

2. Akış: Sisteminizde kullanıcı bilgileri yok

Aşağıdaki şemada, kullanıcının bilgileri sisteminizde olmadığında GSI ile gerçekleşen uçtan uca akış gösterilmektedir:

Bu durumda, user@gmail.com için Google kimliği jetonunda bulunan bilgiler sisteminizdeki bir hesapla eşleşmediğinden Asistan, kullanıcıya yeni bir hesap oluşturmak isteyip istemediğini sorar. Kullanıcı, hesap oluşturma işlemini filtrelenmiş bir cihaza aktarmak yerine sesle tamamlayabilir.

Kullanıcı hesap oluşturmayı kabul ettiğinde hizmetiniz, kullanıcı için hesap oluşturmak amacıyla kimlik jetonundaki bilgileri (kullanıcının adı ve e-posta adresi) kullanır. Hesap oluşturulduktan sonra kullanıcının İşleminizdeki kimliği yeni Google hesabına bağlanır.

Bu durumda, kullanıcının hizmette yeni olduğu için kullanıcının olağan bir siparişi yoktur. Bu nedenle İşleminiz ne sipariş etmek istediğini sorar. Ayrıca, kullanıcıya en son siparişini her zamanki gibi ayarlamak isteyip istemediğini de sorabilirsiniz.