একটি বিবৃতি তালিকা তৈরি করা

অ্যাসেট লিংক স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত, একটি প্রিন্সিপালের একটি সুপরিচিত স্থানে একটি JSON-এনকোডেড স্টেটমেন্ট তালিকায় বিবৃতিগুলি হোস্ট করা হয়। একটি স্টেটমেন্ট তালিকায় এক বা একাধিক স্টেটমেন্ট থাকে এবং একটি প্রিন্সিপালের কেবল একটি স্টেটমেন্ট তালিকা থাকতে পারে।

Statement list syntax

বিবৃতি তালিকার বাক্য গঠন দেখুন।

বিবৃতি তালিকার অবস্থান

বিবৃতি তালিকাটি একটি সুপরিচিত স্থানে হোস্ট করা হয় যা প্রিন্সিপালের ধরণের উপর নির্ভর করে (বিবৃতি প্রদানকারী ওয়েবসাইট বা অ্যাপ)।

ওয়েবসাইট বিবৃতি তালিকা

একটি ওয়েবসাইটে, একটি বিবৃতি তালিকা হল একটি টেক্সট ফাইল যা নিম্নলিখিত ঠিকানায় অবস্থিত:

scheme :// domain /.well-known/assetlinks.json

.well-known ফোল্ডারের নামের বিন্দুটি লক্ষ্য করুন।

HTTP 200 ছাড়া সার্ভার থেকে আসা যেকোনো প্রতিক্রিয়াকে ত্রুটি হিসেবে বিবেচনা করা হবে এবং এর ফলে একটি খালি বিবৃতি তালিকা তৈরি হবে। HTTPS-এর ক্ষেত্রে, বিশ্বস্ত রুট তালিকা দিয়ে যাচাই করা যেতে পারে এমন কোনও সার্টিফিকেট চেইন ছাড়া যেকোনো সংযোগের ফলে একটি খালি বিবৃতি তালিকা তৈরি হবে।

উদাহরণ

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

অ্যান্ড্রয়েড অ্যাপ স্টেটমেন্ট তালিকা

একটি অ্যান্ড্রয়েড অ্যাপে, স্টেটমেন্ট লিস্ট হল একটি JSON স্নিপেট যার সিনট্যাক্স ওয়েবসাইট স্টেটমেন্ট ফাইলের মতোই, কিন্তু এটি strings.xml ফাইলে এমবেড করা থাকে এবং পরবর্তীতে দেখানো ম্যানিফেস্টে রেফারেন্স করা থাকে।

AndroidManifest.xml-এ:

<manifest>
  <application>
    ...
    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    ...
  </application>
</manifest>

res/values/strings.xml-এ:

<resources>
  ...
  <string name="asset_statements">
    ... statement list ...
  </string>
</resources>

উদাহরণ

এখানে একটি Android অ্যাপের উদাহরণ res/values/strings.xml স্নিপেট দেওয়া হল যা অ্যাপের সাথে লোকেশন শেয়ারিং সমর্থন করে (একটি Android বৈশিষ্ট্য যা বর্তমানে সমর্থিত নয়):

<resources>
    ...
    <string name="asset_statements">
      [{
        \"relation\": [\"delegate_permission/common.share_location\"],
        \"target\": {
          \"namespace\": \"web\",
          \"site\": \"https://example.com\"
        }
      }]
    </string>
</resources>

লক্ষ্য মেলানো

প্রতিটি বিবৃতি একটি লক্ষ্য সম্পর্কে। যখন আপনি একটি বিবৃতি ব্যবহার করেন, তখন আপনাকে অবশ্যই একটি বিবৃতিতে থাকা লক্ষ্যটিকে বাস্তবে কোনও সত্তার সাথে মেলাতে হবে। যদি বিবৃতির লক্ষ্যটি সত্তার সাথে মিলে যায়, তাহলে বিবৃতিটি প্রযোজ্য। একটি লক্ষ্য একটি নির্দিষ্ট সত্তার সাথে মেলে কিনা তা নির্ধারণের নিয়মগুলি এখানে দেওয়া হল:

ওয়েবসাইট লক্ষ্যবস্তু

একটি ওয়েবসাইটের জন্য, সাইট স্কিম, হোস্ট এবং পোর্ট অবশ্যই হুবহু মিলতে হবে। HTTP এবং HTTPS (যথাক্রমে 80 এবং 443) এর জন্য ডিফল্ট পোর্টগুলি পরোক্ষভাবে ধরে নেওয়া হয়; যদি একটি স্টেটমেন্ট টার্গেট http://www.example.com:80 বর্ণনা করে, তাহলে http://www.example.com ওয়েবসাইটটিকে একটি মিল হিসাবে বিবেচনা করা হবে।

উদাহরণ

নিম্নলিখিত বিবৃতি লক্ষ্য দেওয়া হয়েছে

"target": {
  "namespace": "web",
  "site": "https://www.google.com"
}

নিম্নলিখিত URI গুলি মিলবে :

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

নিম্নলিখিত URL গুলি মিলবে না :

  • http://www.google.com/ ( ভুল স্কিম )
  • https://google.com/ ( হোস্টের নাম মিলছে না )
  • https://www.google.com:444/ ( পোর্টটি মিলছে না )

অ্যাপ টার্গেট

একটি অ্যাপের জন্য, লক্ষ্যের সার্টিফিকেট হ্যাশ এবং প্যাকেজের নাম অবশ্যই অ্যাপ্লিকেশনের সাথে হুবহু মিলতে হবে।