إذا كان تطبيقك الذي يستخدم Smart Lock لكلمات المرور يشارك قاعدة بيانات المستخدمين مع موقعك الإلكتروني، أو إذا كان تطبيقك وموقعك الإلكتروني يستخدمان موفّري خدمة تسجيل الدخول الموحّد، مثل تسجيل الدخول بحساب Google، يمكنك ربط التطبيق بالموقع الإلكتروني بحيث يحفظ المستخدمون بيانات اعتمادهم مرة واحدة ثم يسجّلون الدخول تلقائيًا إلى كل من التطبيق والموقع الإلكتروني.
لربط تطبيق بموقع إلكتروني، عليك الإفصاح عن عمليات الربط من خلال استضافة ملف روابط التنقل إلى مواد العرض الرقمية على موقعك الإلكتروني وإضافة رابط يؤدي إلى ملف رابط التنقل إلى مواد العرض الرقمية في بيان التطبيق.
من خلال استضافة بيان "روابط مواد العرض الرقمية" على موقعك الإلكتروني، يتم أيضًا السماح لموقعك الإلكتروني بمشاركة بيانات الملء التلقائي مع تطبيقك عند تشغيله على الإصدار 8.0 من نظام التشغيل Android أو إصدار أحدث.
المتطلبات الأساسية
يجب أن يكون نطاق تسجيل الدخول إلى موقعك الإلكتروني متاحًا من خلال HTTPS.
ربط تطبيقك بموقعك الإلكتروني
أنشئ ملف روابط مواد العرض الرقمية بتنسيق JSON.
على سبيل المثال، للإشارة إلى أنّ الموقع الإلكتروني
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
عنوان URL للموقع الإلكتروني بالتنسيق
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 في الموقع التالي على نطاق تسجيل الدخول:
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 باسترداد ملف رابط الأصول الرقمية. إذا كان لديك ملف
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
المطلوب تحميلها. وعليك إلغاء أي فاصلات عليا وعلامات اقتباس تستخدمها في السلسلة. مثال:<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 بشكل دوري مما إذا كانت الارتباطات التي يتم إرسالها من خلال النموذج تعمل فعليًا وقد تتواصل معك في حال حدوث مشاكل.
عند اكتمال عملية إثبات الهوية، سيتمكّن مستخدمو تطبيقك من حفظ بيانات الاعتماد الخاصة بهم على تطبيقك أو موقعك الإلكتروني، مع إمكانية تسجيل الدخول تلقائيًا إلى كلا التطبيقَين.
مثال: ربط تطبيقات متعددة بموقع إلكتروني
يمكنك ربط تطبيقات متعددة بموقع إلكتروني عن طريق تحديد كل تطبيق في ملف
Digital Assets Link. على سبيل المثال، لربط التطبيقَين 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>