אם באפליקציה שבה נעשה שימוש ב-Smart Lock לסיסמאות משותף עם האתר שלך מסד נתונים של משתמשים, או אם האפליקציה והאתר משתמשים בספקי כניסה מאוחדים כמו כניסה באמצעות חשבון Google, אפשר לשייך את האפליקציה לאתר כדי שהמשתמשים ישמרו את פרטי הכניסה שלהם פעם אחת, ולאחר מכן ייכנסו באופן אוטומטי לאפליקציה וגם לאתר.
כדי לשייך אפליקציה לאתר, צריך להצהיר על שיוכים. לשם כך, אירוח קובץ JSON עם Digital Asset Links באתר והוספת קישור לקובץ Digital Asset Link למניפסט של האפליקציה.
אירוח הצהרה של Digital Asset Links באתר שלכם מאפשר גם לאתר לשתף נתוני מילוי אוטומטי עם האפליקציה בגרסת Android 8.0 ואילך.
דרישות מוקדמות
הדומיין לכניסה לאתר חייב להיות זמין באמצעות HTTPS.
שיוך האפליקציה שלך לאתר
יוצרים קובץ JSON מסוג Digital Asset Links (קישורים לדיגיטל).
לדוגמה, כדי להצהיר שהאתר
https://signin.example.com
ואפליקציית Android עם שם החבילהcom.example
יכולים לשתף פרטי כניסה, צריך ליצור קובץ בשםassetlinks.json
עם התוכן הבא:[{ "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "web", "site": "https://signin.example.com" } }, { "relation": ["delegate_permission/common.get_login_creds"], "target": { "namespace": "android_app", "package_name": "com.example", "sha256_cert_fingerprints": [ "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B" ] } }]
השדה
relation
הוא מערך של מחרוזת אחת או יותר שמתארת את הקשר המוצהר. כדי להצהיר שהאפליקציות והאתרים משתפים פרטי כניסה, צריך לציין את המחרוזתdelegate_permission/common.get_login_creds
.השדה
target
הוא אובייקט שמציין את הנכס שעליו חלה ההצהרה. השדות הבאים מזהים אתר:namespace
web
site
כתובת האתר, בפורמט
https://domain[:optional_port]
. לדוגמה,https://www.example.com
.הערך domain צריך להיות מוגדר באופן מלא, וצריך להשמיט את הערך optional_port כשמשתמשים ביציאה 443 ל-HTTPS.
יעד
site
יכול להיות דומיין בסיס בלבד: לא ניתן להגביל שיוך אפליקציה לספריית משנה ספציפית. חשוב לא לכלול נתיב בכתובת ה-URL, למשל קו נטוי בסוף.תת-דומיינים לא נחשבים כמתאימים: כלומר, אם מציינים את domain בתור
www.example.com
, הדומייןwww.counter.example.com
לא משויך לאפליקציה שלך.השדות הבאים משמשים לזיהוי האפליקציה ל-Android:
namespace
android_app
package_name
שם החבילה שהוצהר במניפסט של האפליקציה. לדוגמה, com.example.android
sha256_cert_fingerprints
טביעות האצבע מסוג SHA256 של אישור החתימה של האפליקציה. כדי ליצור את טביעת האצבע, תוכלו להשתמש בפקודה הבאה: $ keytool -list -v -keystore my-release-key.keystore
לפרטים נוספים, ראו קישורים לנכסים דיגיטליים.
מארחים את קובץ ה-JSON של Digital Assets Link במיקום הבא בדומיין הכניסה:
https://domain[:optional_port]/.well-known/assetlinks.json
לדוגמה, אם הדומיין לכניסה הוא
signin.example.com
, מארחים את קובץ ה-JSON ב-https://signin.example.com/.well-known/assetlinks.json
.סוג ה-MIME של קובץ Digital Assets Link צריך להיות JSON. ודאו שהשרת שולח את הכותרת
Content-Type: application/json
בתגובה.ודאו שהמארח מאפשר ל-Google לאחזר את קובץ ה-Digital Asset Link. אם יש לכם קובץ
robots.txt
, הוא צריך לאפשר לסוכן Googlebot לאחזר את/.well-known/assetlinks.json
. רוב האתרים יכולים פשוט לאפשר לכל סוכן אוטומטי לאחזר קבצים בנתיב/.well-known/
כדי ששירותים אחרים יוכלו לגשת למטא-נתונים בקבצים האלה:User-agent: * Allow: /.well-known/
צריך להצהיר על השיוך באפליקציה ל-Android.
מוסיפים את השורה הבאה לקובץ המניפסט במסגרת
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
יש להוסיף משאב של מחרוזת
asset_statements
לקובץstrings.xml
. המחרוזתasset_statements
היא אובייקט JSON שמציין את קובציassetlinks.json
שיש לטעון. עליך להשתמש בתו בריחה (escape) של גרשיים או מירכאות שבהם השתמשת במחרוזת. לדוגמה:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
> GET /.well-known/assetlinks.json HTTP/1.1 > User-Agent: curl/7.35.0 > Host: signin.example.com < HTTP/1.1 200 OK < Content-Type: application/json
מפרסמים את האפליקציה בחנות Google Play. צריך לפרסם אותו בערוץ הציבורי כדי לאסוף שיוכים.
(אופציונלי) ממלאים את טופס השיוך אל Smart Lock לסיסמאות ושולחים אותו כדי לציין שביצעתם את התהליך. Google בודקת מדי פעם אם הקשרים שנשלחו באמצעות הטופס אכן פועלים, ועשויה ליצור איתכם קשר אם יהיו בעיות.
בסיום האימות, משתמשי האפליקציה יוכלו לשמור את פרטי הכניסה שלהם באפליקציה או באתר ולהיכנס באופן אוטומטי לשניהם.
דוגמה: שיוך אפליקציות מרובות לאתר מסוים
כדי לשייך כמה אפליקציות לאתר מסוים, אפשר לציין כל אפליקציה בקובץ הקישור לנכסים דיגיטליים. לדוגמה, כדי לשייך את האפליקציה com.example
והאפליקציה com.example.pro
לאתר שבכתובת https://signin.example.com/
, צריך לציין את שתי האפליקציות בקובץ ה-JSON שמתארח ב-https://signin.example.com/.well-known/assetlinks.json
:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
לאחר מכן, מצהירים על השיוך בשתי האפליקציות:
מוסיפים את השורה הבאה לקובץ המניפסט במסגרת
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
מוסיפים את משאב המחרוזת הבא לקובץ
strings.xml
:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>
דוגמה: שיוך אפליקציות לכמה אתרים
אפשר לשייך אפליקציות לכמה אתרים על ידי ציון של כל אתר בקובץ הקישור לנכסים דיגיטליים ואירוח הקובץ בכל אתר. לדוגמה, כדי לשייך את האפליקציות com.example
ו-com.example.pro
לאתר שבכתובת https://signin.example.com/
ו-https://m.example.com/
, צריך לציין את האפליקציות וגם את שני האתרים בקובץ JSON שמתארח ב-https://signin.example.com/.well-known/assetlinks.json
:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://signin.example.com"
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://m.example.com"
},
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
},{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "android_app",
"package_name": "com.example.pro",
"sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
]
}
}]
לאחר מכן, בקובץ ה-JSON שמתארח ב-https://m.example.com/.well-known/assetlinks.json
, צריך לכלול את הקובץ הראשי של קישורים לנכסים דיגיטליים:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
לבסוף, מצהירים על השיוך בשתי האפליקציות:
מוסיפים את השורה הבאה לקובץ המניפסט במסגרת
<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
מוסיפים את משאב המחרוזת הבא לקובץ
strings.xml
:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>