বিবৃতি তালিকা সিনট্যাক্স

একটি বিবৃতি তালিকা একটি JSON-এনকোড করা ফাইল বা একটি সুপরিচিত স্থানে স্নিপেট।

এই তালিকাটি কোথায় সংরক্ষণ করা উচিত তা জানতে একটি বিবৃতি তালিকা তৈরি করা দেখুন।

বিবৃতি তালিকা বা স্নিপেটে JSON অবজেক্ট হিসাবে এক বা একাধিক ওয়েবসাইট বা অ্যাপ স্টেটমেন্টের একটি JSON অ্যারে থাকে। এই বিবৃতি যে কোনো ক্রমে হতে পারে. এখানে সাধারণ সিনট্যাক্স আছে:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
সম্পর্ক
এক বা একাধিক স্ট্রিংয়ের একটি অ্যারে যা লক্ষ্য সম্পর্কে ঘোষণা করা সম্পর্ক বর্ণনা করে। সংজ্ঞায়িত সম্পর্ক স্ট্রিংগুলির তালিকা দেখুন। উদাহরণ: delegate_permission/common.handle_all_urls
লক্ষ্য
লক্ষ্য সম্পদ যার জন্য এই বিবৃতি প্রযোজ্য। উপলব্ধ লক্ষ্য প্রকার:
  • "target": {
      "namespace": "web",
      "site": "site_root_url"
    }
    নামস্থান
    ওয়েবসাইটের জন্য web হতে হবে।
    সাইট
    যে সাইটের ইউআরআই বিবৃতিটির লক্ষ্য, ফর্ম্যাটে http[s]://< hostname >[:< port >] , যেখানে <hostname> সম্পূর্ণরূপে-যোগ্য এবং <port> ব্যবহার করার সময় অবশ্যই বাদ দিতে হবে HTTP এর জন্য পোর্ট 80, অথবা HTTPS এর জন্য 443 পোর্ট। একটি ওয়েবসাইট লক্ষ্য শুধুমাত্র একটি রুট ডোমেইন হতে পারে; আপনি একটি নির্দিষ্ট সাবডিরেক্টরিতে সীমাবদ্ধ করতে পারবেন না; এই রুটের অধীনে সমস্ত ডিরেক্টরি মিলবে। সাবডোমেনগুলিকে মেলে বলে বিবেচনা করা উচিত নয়: অর্থাৎ, যদি স্টেটমেন্ট ফাইলটি www.example.com-এ হোস্ট করা হয়, তাহলে www.puppies.example.com-কে মিল বলে বিবেচনা করা উচিত নয়৷ ওয়েবসাইট টার্গেট ম্যাচিং সম্পর্কে নিয়ম এবং উদাহরণের জন্য, লক্ষ্য ডকুমেন্টেশন দেখুন। উদাহরণ: http://www.example.com
  • "target": {
      "namespace": "android_app",
      "package_name": "fully_qualified_package_name",
      "sha256_cert_fingerprints": ["cert_fingerprint"]
    }
    নামস্থান
    অ্যান্ড্রয়েড অ্যাপের জন্য android_app হতে হবে।
    প্যাকেজ_নাম
    এই বিবৃতিটি প্রযোজ্য অ্যাপটির সম্পূর্ণ-যোগ্য প্যাকেজের নাম। উদাহরণ: com.google.android.apps.maps
    sha256_cert_আঙুলের ছাপ
    এই বিবৃতিটি প্রযোজ্য অ্যাপের জন্য শংসাপত্রের বড় হাতের SHA265 আঙ্গুলের ছাপ । আপনি এখানে দেখানো হিসাবে openssl বা Java keytool ব্যবহার করে এটি গণনা করতে পারেন:
    • openssl x509 -in $CERTFILE -noout -fingerprint -sha256
    • keytool -printcert -file $CERTFILE | grep SHA256
    উদাহরণ: ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]

    আপনি যদি আপনার অ্যাপের জন্য প্লে অ্যাপ সাইনিং ব্যবহার করেন, তাহলে স্থানীয়ভাবে keytool বা openssl চালানোর মাধ্যমে উত্পাদিত শংসাপত্রের ফিঙ্গারপ্রিন্ট সাধারণত ব্যবহারকারীদের ডিভাইসে থাকা একটির সাথে মেলে না। আপনি Release > Setup > App Integrity অধীনে আপনার প্লে কনসোল ডেভেলপার অ্যাকাউন্টে আপনার অ্যাপের জন্য Play অ্যাপ সাইনিং ব্যবহার করছেন কিনা তা যাচাই করতে পারেন যদি আপনি তা করেন, তাহলে আপনি একই পৃষ্ঠায় আপনার অ্যাপের জন্য সঠিক ডিজিটাল সম্পদ লিঙ্ক JSON স্নিপেটও পাবেন।

উদাহরণ বিবৃতি তালিকা

এখানে একটি উদাহরণ ওয়েবসাইট বিবৃতি তালিকা রয়েছে যাতে ওয়েবসাইট এবং অ্যাপ উভয় সম্পর্কে বিবৃতি রয়েছে: http://example.digitalassetlinks.org/.well-known/assetlinks.json

কয়েক ডজন বা তার বেশি বিবৃতিতে স্কেলিং

কিছু ক্ষেত্রে, একজন অধ্যক্ষ বিভিন্ন লক্ষ্য সম্পর্কে বিভিন্ন বিবৃতি দিতে চাইতে পারেন, অথবা একই লক্ষ্যের সেটে বিভিন্ন অধ্যক্ষ থেকে বিবৃতি জারি করার প্রয়োজন হতে পারে। উদাহরণ স্বরূপ, একটি ওয়েবসাইট বিভিন্ন দেশের বিভিন্ন টপ লেভেল ডোমেনে উপলব্ধ হতে পারে এবং তাদের সকলেই একই মোবাইল অ্যাপ সম্পর্কে একটি বিবৃতি দিতে চাইতে পারে।

এই পরিস্থিতিতে, বিবৃতি অন্তর্ভুক্ত সহায়ক হতে পারে. এই প্রক্রিয়াটি ব্যবহার করে, আপনি বিভিন্ন অধ্যক্ষ থেকে একটি কেন্দ্রীয় অবস্থানে পয়েন্টার সেট আপ করতে পারেন, যা সমস্ত প্রিন্সিপালের জন্য বিবৃতি সংজ্ঞায়িত করে।

উদাহরণস্বরূপ, আপনি সিদ্ধান্ত নিতে পারেন যে কেন্দ্রীয় অবস্থানটি `https://example.com/includedstatements.json` হওয়া উচিত। এই ফাইলটি উপরের উদাহরণগুলির মতো একই বিষয়বস্তু ধারণ করার জন্য কনফিগার করা যেতে পারে।

একটি ওয়েব সাইট থেকে অন্তর্ভুক্ত ফাইলে একটি পয়েন্টার সেট আপ করতে, `https://example.com/.well-known/assetlinks.json` এতে পরিবর্তন করুন:

[{
  "include": "https://example.com/includedstatements.json"
}]

অন্তর্ভুক্ত ফাইলে একটি অ্যান্ড্রয়েড অ্যাপ থেকে একটি পয়েন্টার সেট আপ করতে, `res/values/strings.xml`-এ পরিবর্তন করুন:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

আরো তথ্য

আমাদের স্পেসিফিকেশন নথিতে বিবৃতি তালিকা বিন্যাস এবং অন্তর্নিহিত ধারণাগুলির আরও বিশদ ব্যাখ্যা রয়েছে।