אפשר ליצור קישור חשבונות ישירות מתוך האפליקציה לנייד, וכך לאפשר למשתמשים לקשר את החשבון שלהם בשירות שלכם לחשבון Google. הקישור שנוצר מעניק ל-Google גישה לנתונים שהמשתמש מסכים לשתף.
הגישה הזו משפרת את ביצועי הקישור של החשבונות על ידי יצירת מעורבות של משתמשים בהקשר המוכר של האפליקציה, במקום שיחה עם Assistant. אפשר לשלב אותו עם תהליך הקליטה של המשתמשים, עם ההגדרות ובפלטפורמות נוספות של האפליקציות, וכך ליצור הזדמנויות לגילוי ולהתעניינות של הפעולה של Google Assistant. לדוגמה, לאחר יצירת הקישור, אפשר להציע שהמערכת תעביר את המשתמש ישירות לפעולה שלכם.
היתרונות למשתמשים כוללים:
- המשתמשים יכולים להתחיל ולהשלים את תהליך קישור החשבונות באפליקציה שלך, סביבה שהם כבר מכירים.
- משתמשים לא דורשים פרטי כניסה, מכיוון שהם כבר אומתו במכשיר ובאפליקציה לנייד.
היתרונות למפתחים כוללים:
- ניתן לקבוע היכן לקדם ולהפעיל קישור חשבונות באפליקציה לנייד, לדוגמה, בהגדרות המשתמש, במודעות מעברון או אחרי שמשתמש נכנס לאפליקציה לנייד. הוספת מספר נקודות כניסה להפעלת קישור חשבון עוזרת להפוך את הקישור של החשבון לגלוי יותר, וכתוצאה מכך יש יותר מעורבות ומספר החשבונות המקושרים.
- עלייה בשיעור ההמרה, כי משתמשים יכולים להשלים את תהליך הקישור בפחות שלבים מתהליך ה-OAuth הרגיל לאינטרנט.
- נדרש מאמץ נמוך של הנדסה כדי להטמיע קישור מהפלטפורמה שלך (Android), כי התהליך הזה ממנף את ההטמעה הקיימת של OAuth2.0 בהנחה שכבר ביצעת הטמעה כזו.
- שיעורי נשירה מופחתים מפני שמשתמשים לא צריכים להזין מחדש את פרטי ההתחברות שלהם והם יכולים להשלים את התהליך בפחות שלבים. שיעורי הנשירה עשויים להיות גבוהים עד 80% בנתיבים שבהם המשתמשים נדרשים להיזכר ולהזין את פרטי הכניסה שלהם.
איך זה עובד
כדי ליצור קישור מהפלטפורמה, מבצעים את השלבים הבאים:
- המשתמש יצטרך ללחוץ על טריגר לקישור או להעביר אותו למצב מופעל באפליקציה לנייד.
- המשתמש בוחר את חשבון Google שרוצים לקשר.
- המשתמש בוחר חשבון Google קיים במכשיר לקישור, או נכנס לחשבון חדש
- המשתמש רואה מסכי הסכמה שמתארחים ב-Google, והוא צריך לאשר את ההסכמה להמשך או לבטל כדי להפסיק את תהליך הקישור.
- למשתמש יוצג מסך ההסכמה שלכם, והוא יצטרך לאשר את המשך התהליך או לבטל אותו כדי להפסיק את תהליך הקישור.
- הקישור נוצר בין החשבון של המשתמש בשירות לבין חשבון Google שלו.

איור 1. קישור מ'תהליך הפלטפורמה'
דרישות
כדי להטמיע את Link מהפלטפורמה שלכם, אתם צריכים:
- אפליקציה ל-Android.
- להיות הבעלים של שרת OAuth 2.0 שתומך בתהליך קוד האימות של OAuth 2.0, לנהל אותו ולתחזק אותו.
הגדרה
לפני שממשיכים בשלבים הבאים, צריך להשלים את תהליך הרישום לקישור החשבון.
הגדרת סביבת הפיתוח
מורידים את הגרסה האחרונה של Google Play Services למארח הפיתוח:
- פותחים את Android SDK Manager.
בקטע SDK Tools, מחפשים את Google Play Services.
אם הסטטוס של החבילות האלה הוא לא 'הותקנו', בוחרים בשתיהן ולוחצים על התקנת החבילות.
הגדרת האפליקציה
בקובץ
build.gradle
ברמת הפרויקט, צריך לכלול את מאגר Maven של Google גם בקטעbuildscript
וגם בקטעallprojects
.buildscript { repositories { google() } } allprojects { repositories { google() } }
מוסיפים את יחסי התלות של ה-API 'קישור ל-Google' לקובץ ה-Gradle ברמת האפליקציה של המודול, שבדרך כלל הוא
app/build.gradle
:dependencies { implementation 'com.google.android.gms:play-services-auth:21.3.0' }
הוספת תמיכה ב-Link מהפלטפורמה שלכם
הקישור מתהליך הפלטפורמה יוביל לכך ש-Google תשמור אסימון גישה שסופק על ידי השירות שלכם. צריך לקבל הסכמה לפני שמחזירים את האסימון של המשתמש.
פועלים לפי השלבים הבאים כדי לקבל הסכמה מהמשתמש ולהחזיר אסימון של קוד אימות דרך Google Play Services SDK.
יוצרים PendingIntent שיכול להפעיל את פעילות ההסכמה – ההסכמה מופעלת על ידי Play Services API. צריך לספק
PendingIntent
(שנקראconsentPendingIntent
לשם הבהרה) כשקוראים ל-APIKotlin
// Build a PendingIntent that can launch the consent activity val consentPendingIntent = buildConsentPendingIntent()
Java
// Build a PendingIntent that can launch your consent activity PendingIntent consentPendingIntent = buildConsentPendingIntent();
יוצרים פעילות תואמת כדי לטפל בכוונה להביע הסכמה
Kotlin
class ConsentActivity : AppCompatActivity private fun onConsentAccepted() { // Obtain a token (for simplicity, we’ll ignore the async nature // of the following call) val token = getToken() val intent = Intent() .putExtra(SaveAccountLinkingTokenRequest.EXTRA_TOKEN, token) setResult(Activity.RESULT_OK, intent) finish() } private fun onConsentRejectedOrCanceled() { setResult(Activity.RESULT_CANCELED) finish() }
Java
public class ConsentActivity extends AppCompatActivity { ... private void onConsentAccepted() { // Obtain a token (for simplicity, we’ll ignore the async nature of // the following call String token = getToken(); Intent intent = new Intent(); intent.putExtra(SaveAccountLinkingTokenRequest.EXTRA_TOKEN, token); setResult(Activity.RESULT_OK, intent); finish(); } private void onConsentRejectedOrCanceled() { setResult(Activity.RESULT_CANCELED, null); finish(); } }
אנחנו מניחים שהשיטות
onConsentAccpeted()
ו-onConsentRejectedOrCanceled()
נקראות אם המשתמש מאשר או דוחה/מבטל את ההסכמה שלכם, בהתאמה.יוצרים בקשה לשמירת הטוקן, ומעבירים את
PendingIntent
שנוצר בשלב 1 שלמעלה, בין פרמטרים אחרים של הגדרה.Kotlin
// Create an ActivityResultLauncher which registers a callback for the // Activity result contract val activityResultLauncher = registerForActivityResult( ActivityResultContracts.StartIntentSenderForResult()) { result -> if (result.resultCode == RESULT_OK) { // Successfully finished the flow and saved the token } else { // Flow failed, for example the user may have canceled the flow } } // Build token save request val request = SaveAccountLinkingTokenRequest.builder() .setTokenType(SaveAccountLinkingTokenRequest.TOKEN_TYPE_AUTH_CODE) .setConsentPendingIntent(consentPendingIntent) .setServiceId("service-id-of-and-defined-by-developer") //Set the scopes that the token is valid for on your platform .setScopes(scopes) .build() // Launch consent activity and retrieve token Identity.getCredentialSavingClient(this) .saveAccountLinkingToken(request) .addOnSuccessListener( saveAccountLinkingTokenResult -> { if (saveAccountLinkingTokenResult.hasResolution()) { val pendingIntent = saveAccountLinkingTokenResult .getPendingIntent() val intentSenderRequest = IntentSenderRequest .Builder(pendingIntent).build() activityResultLauncher.launch(intentSenderRequest) } else { // This should not happen, let’s log this Log.e(TAG, "Failed to save token"); } }) .addOnFailureListener(e -> Log.e(TAG, “Failed to save token”, e))
Java
// Create an ActivityResultLauncher which registers a callback for the // Activity result contract ActivityResultLauncher<IntentSenderRequest> activityResultLauncher = registerForActivityResult(new ActivityResultContracts .StartIntentSenderForResult(), result -> { if (result.getResultCode() == RESULT_OK) { // Successfully finished the flow and saved the token } else { // Flow failed, for example the user may have canceled the flow } }); // Build token save request SaveAccountLinkingTokenRequest request = SaveAccountLinkingTokenRequest.builder() .setTokenType( SaveAccountLinkingTokenRequest.TOKEN_TYPE_AUTH_CODE) .setConsentPendingIntent(consentPendingIntent) .setServiceId("service-id-of-and-defined-by-developer") //Set the scopes that the token is valid for on your platform .setScopes(scopes) .build(); // Launch consent activity and retrieve token Identity.getCredentialSavingClient(this) .saveAccountLinkingToken(request) .addOnSuccessListener( saveAccountLinkingTokenResult -> { if (saveAccountLinkingTokenResult.hasResolution()) { // Launch the resolution intent PendingIntent pendingIntent = saveAccountLinkingTokenResult.getPendingIntent(); IntentSenderRequest intentSenderRequest = new IntentSenderRequest.Builder(pendingIntent).build(); activityResultLauncher.launch(intentSenderRequest); } else { // This should not happen, let’s log this Log.e(TAG, "Failed to save token"); } }) .addOnFailureListener(e -> Log.e(TAG, "Failed to save token", e)); ```
השלבים שלמעלה מבקשים מהמשתמש להביע הסכמה ומחזירים קוד הרשאה ל-Google.
שיטות מומלצות
באפליקציה צריך להציג למשתמש את סטטוס הקישור באמצעות לחצן, מתג או אלמנט חזותי דומה.
איור 1. תמונה לדוגמה של סטטוס קישור
מומלץ להודיע למשתמש אחרי שהקישור הצליח, למשל להציג הודעה קופצת, להפעיל שינוי מצב של מתג או להפנות את המשתמש לדף נפרד של אישור קישור.
מומלץ לבקש ממשתמשים באפליקציה לקשר חשבונות, רצוי על סמך אותות חזקים לכך שהקישור יביא תועלת למשתמשים כאלה.
אחרי שהקישור יושלם, כדאי לתת למשתמשים דוגמה למה שאפשר לעשות עם החשבון המקושר. לדוגמה, אם קישרתם שירות סטרימינג של מוזיקה, תוכלו לבקש מ-Google Assistant להשמיע מוזיקה.
לאפשר למשתמשים לנהל את החשבונות המקושרים שלהם, כולל אפשרות לבטל את הקישור שלהם. מפנים אותם לדף הניהול של החשבונות המקושרים ב-Google, בכתובת https://myaccount.google.com/accountlinking.