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