যদি আপনার অ্যাপ যেটি পাসওয়ার্ডের জন্য স্মার্ট লক ব্যবহার করে তা আপনার ওয়েবসাইটের সাথে একটি ব্যবহারকারীর ডাটাবেস শেয়ার করে—অথবা যদি আপনার অ্যাপ এবং ওয়েবসাইট Google সাইন-ইন-এর মতো ফেডারেটেড সাইন-ইন প্রদানকারী ব্যবহার করে—আপনি অ্যাপটিকে ওয়েবসাইটের সাথে যুক্ত করতে পারেন যাতে ব্যবহারকারীরা তাদের শংসাপত্র সংরক্ষণ করে একবার এবং তারপর স্বয়ংক্রিয়ভাবে অ্যাপ এবং ওয়েবসাইট উভয়েই সাইন ইন করুন।
একটি ওয়েবসাইটের সাথে একটি অ্যাপ সংযুক্ত করতে, আপনার ওয়েবসাইটে একটি ডিজিটাল সম্পদ লিঙ্ক JSON ফাইল হোস্ট করে এবং আপনার অ্যাপের ম্যানিফেস্টে ডিজিটাল সম্পদ লিঙ্ক ফাইলের একটি লিঙ্ক যোগ করে অ্যাসোসিয়েশন ঘোষণা করুন।
আপনার ওয়েবসাইটে একটি ডিজিটাল সম্পদ লিঙ্ক ঘোষণা হোস্ট করার মাধ্যমে, আপনি Android 8.0 এবং নতুন সংস্করণে চলাকালীন আপনার অ্যাপের সাথে অটোফিল ডেটা শেয়ার করতে আপনার ওয়েবসাইটকে সক্ষম করেন।
পূর্বশর্ত
আপনার ওয়েবসাইটের সাইন-ইন ডোমেন অবশ্যই HTTPS-এর মাধ্যমে উপলব্ধ হতে হবে।
আপনার ওয়েবসাইটের সাথে আপনার অ্যাপ যুক্ত করুন
একটি ডিজিটাল সম্পদ লিঙ্ক JSON ফাইল তৈরি করুন।
উদাহরণস্বরূপ,
https://signin.example.com
ওয়েবসাইট এবং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 অবশ্যই সম্পূর্ণ-যোগ্য হতে হবে। এবং HTTPS-এর জন্য পোর্ট 443 ব্যবহার করার সময় optional_port অবশ্যই বাদ দিতে হবে।
একটি
site
টার্গেট শুধুমাত্র একটি রুট ডোমেন হতে পারে: আপনি একটি নির্দিষ্ট সাবডিরেক্টরিতে একটি অ্যাপ অ্যাসোসিয়েশন সীমাবদ্ধ করতে পারবেন না। ইউআরএলে একটি পথ অন্তর্ভুক্ত করবেন না, যেমন একটি ট্রেলিং স্ল্যাশ।সাবডোমেনগুলিকে মেলে বলে মনে করা হয় না: অর্থাৎ, আপনি যদি 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/
অ্যান্ড্রয়েড অ্যাপে অ্যাসোসিয়েশন ঘোষণা করুন।
<application>
অধীনে ম্যানিফেস্ট ফাইলে নিম্নলিখিত লাইন যোগ করুন:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
strings.xml
ফাইলে একটিasset_statements
স্ট্রিং রিসোর্স যোগ করুন।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 পর্যায়ক্রমে যাচাই করে যে ফর্মের মাধ্যমে জমা দেওয়া অ্যাফিলিয়েশনগুলি আসলে কাজ করে কিনা এবং সমস্যার ক্ষেত্রে আপনার সাথে যোগাযোগ করতে পারে।
যাচাইকরণ সম্পূর্ণ হয়ে গেলে, আপনার অ্যাপের ব্যবহারকারীরা তাদের শংসাপত্রগুলি আপনার অ্যাপ বা আপনার ওয়েবসাইটে সংরক্ষণ করতে পারে এবং উভয়েই স্বয়ংক্রিয়ভাবে সাইন ইন করতে পারে।
উদাহরণ: একটি ওয়েবসাইটের সাথে একাধিক অ্যাপ সংযুক্ত করুন
আপনি ডিজিটাল সম্পদ লিঙ্ক ফাইলে প্রতিটি অ্যাপ নির্দিষ্ট করে একটি ওয়েবসাইটের সাথে একাধিক অ্যাপ যুক্ত করতে পারেন। উদাহরণস্বরূপ, https://signin.example.com/
এ সাইটের সাথে com.example
এবং com.example.pro
অ্যাপগুলিকে সংযুক্ত করতে, https://signin.example.com/.well-known/assetlinks.json
এ হোস্ট করা 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>
উদাহরণ: একাধিক ওয়েবসাইটের সাথে অ্যাসোসিয়েট অ্যাপ
আপনি ডিজিটাল সম্পদ লিঙ্ক ফাইলে প্রতিটি ওয়েবসাইট নির্দিষ্ট করে এবং প্রতিটি ওয়েবসাইটে ফাইল হোস্ট করে একাধিক ওয়েবসাইটের সাথে অ্যাপস সংযুক্ত করতে পারেন। উদাহরণস্বরূপ, https://signin.example.com/
এবং https://m.example.com/
এ সাইটের সাথে com.example
এবং com.example.pro
অ্যাপ্লিকেশানগুলি সংযুক্ত করতে, উভয় অ্যাপ এবং উভয় সাইট উল্লেখ করুন 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"
]
}
}]
তারপর, https://m.example.com/.well-known/assetlinks.json
এ হোস্ট করা 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>