אם לאפליקציה שבה נעשה שימוש ב-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 של קובץ הקישור לנכסים דיגיטליים צריך להיות 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 for passwords ושולחים אותו כדי לציין שביצעתם את התהליך. Google בודקת מדי פעם אם הקשרים שנשלחו באמצעות הטופס אכן פועלים, ועשויה ליצור איתכם קשר במקרה שיהיו בעיות.
בסיום האימות, משתמשי האפליקציה יוכלו לשמור את פרטי הכניסה שלהם באפליקציה או באתר ולהיכנס אוטומטית לשניהם.
דוגמה: שיוך של מספר אפליקציות לאתר
כדי לשייך כמה אפליקציות לאתר מסוים, צריך לציין כל אפליקציה בקובץ Digital Asset Links. לדוגמה, כדי לשייך את האפליקציה 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>
דוגמה: שיוך אפליקציות לכמה אתרים
אפשר לשייך אפליקציות למספר אתרים על ידי ציון כל אחד מהאתרים בקובץ Digital Assets Link ואירוח הקובץ בכל אחד מהאתרים. לדוגמה, כדי לשייך את האפליקציות 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
, כוללים את הקובץ הראשי מסוג Digital Asset Links:
[{
"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>