রাস্তার দৃশ্য প্রকাশ API-এ প্রাথমিক কল করার জন্য প্রয়োজনীয় পদক্ষেপগুলি সম্পূর্ণ করতে, এই টিউটোরিয়ালের ধাপগুলি অনুসরণ করুন৷
HTTP কল করা
স্ট্রিট ভিউ পাবলিশ এপিআইকে কার্ল, উইজেট এবং পোস্টম্যানের মতো একাধিক টুল ব্যবহার করে কল করা যেতে পারে। বেশিরভাগ ক্ষেত্রে, আপনি API ব্যবহার করে এমন একটি ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করতে আপনার পছন্দের একটি প্রোগ্রামিং ভাষা ব্যবহার করতে চাইবেন, তবে এই টিউটোরিয়ালটি আপনাকে পৃথক কমান্ডের মাধ্যমে গাইড করার মাধ্যমে মৌলিক বিষয়গুলির মধ্যে নিয়ে যাবে।
আপনি যদি সরাসরি HTTP কল করতে না চান তবে আমরা কিছু ক্লায়েন্ট লাইব্রেরিও প্রদান করি।
পূর্বশর্ত
Google API কনসোল অ্যাক্সেস করতে, একটি API কী অনুরোধ করতে এবং আপনার অ্যাপ্লিকেশন নিবন্ধন করতে আপনার একটি Google অ্যাকাউন্ট প্রয়োজন৷
Google বিকাশকারী কনসোলে একটি প্রকল্প তৈরি করুন এবং অনুমোদনের শংসাপত্রগুলি পান যাতে আপনার অ্যাপ্লিকেশন API অনুরোধগুলি জমা দিতে পারে৷
আপনার প্রকল্প তৈরি করার পরে, নিশ্চিত করুন যে রাস্তার দৃশ্য প্রকাশ API হল সেই পরিষেবাগুলির মধ্যে একটি যা আপনার অ্যাপ্লিকেশনটি ব্যবহার করার জন্য নিবন্ধিত হয়েছে:
- API কনসোলে যান এবং আপনি এইমাত্র নিবন্ধিত প্রকল্পটি নির্বাচন করুন।
- সক্রিয় APIs পৃষ্ঠায় যান। নিশ্চিত করুন যে Google রাস্তার দৃশ্য API সক্রিয় APIগুলির তালিকায় রয়েছে৷ যদি এটি না হয়, তাহলে API লাইব্রেরি খুলুন এবং API সক্ষম করুন।
কিভাবে OAuth 2.0 অনুমোদন বাস্তবায়ন করতে হয় তা জানতে প্রমাণীকরণ নির্দেশিকা পড়ুন।
জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (JSON) ডেটা ফর্ম্যাটের মূল ধারণাগুলির সাথে নিজেকে পরিচিত করুন। JSON হল একটি সাধারণ, ভাষা-স্বাধীন ডেটা ফর্ম্যাট যা নির্বিচারে ডেটা স্ট্রাকচারের একটি সাধারণ পাঠ্য উপস্থাপনা প্রদান করে। আরও তথ্যের জন্য, json.org দেখুন।
একটি API কী পান
প্রমাণীকরণ এবং কোটার উদ্দেশ্যে, আপনাকে আপনার বিকাশকারী কনসোল থেকে তৈরি শংসাপত্র সহ Google রাস্তার দৃশ্য প্রকাশ API ব্যবহার করতে হবে।
- আপনার বিকাশকারী কনসোলে শংসাপত্র পৃষ্ঠাতে নেভিগেট করুন।
- আপনার যদি ইতিমধ্যে একটি API কী থাকে তবে আপনি এটি থেকে মান ব্যবহার করতে পারেন। অন্যথায়, নতুন শংসাপত্র মেনু থেকে API কী নির্বাচন করে একটি নতুন তৈরি করুন।
একটি অ্যাক্সেস টোকেন পান
- Google Developers OAuth 2.0 খেলার মাঠে নেভিগেট করুন।
- সেটিংস মেনুতে ক্লিক করুন (উপরে ডানদিকে গিয়ার আইকন), আপনার নিজস্ব OAuth শংসাপত্র ব্যবহার করুন এবং সংশ্লিষ্ট ক্ষেত্রে আপনার
Client ID
এবংClient secret
ইনপুট করুন এবং তারপর বন্ধ করুন ক্লিক করুন। - ধাপ 1 এর অধীনে: API নির্বাচন করুন এবং অনুমোদন করুন , API স্কোপ ইনপুট করুন
https://www.googleapis.com/auth/streetviewpublish
আপনার নিজের স্কোপ ফিল্ডে ইনপুট করুন, তারপর API গুলি অনুমোদন করুন ক্লিক করুন। আপনি API অনুমোদন করতে চান তা নিশ্চিত করতে একটি নতুন পৃষ্ঠা খুলবে। - টোকেনের জন্য এক্সচেঞ্জ অনুমোদন কোড ক্লিক করুন। এটি অ্যাক্সেস টোকেন ক্ষেত্রটি পূরণ করবে, যা পরবর্তী ধাপে ব্যবহার করার জন্য আপনার অ্যাক্সেস টোকেন ধারণ করবে। অ্যাক্সেস টোকেনের মেয়াদ 60 মিনিটের মধ্যে শেষ হয়ে যায়। মেয়াদ শেষ হওয়ার আগে আপনি টোকেনটিকে স্বয়ংক্রিয়ভাবে রিফ্রেশ করার বিকল্পটি নির্বাচন করতে পারেন, যা একটি নতুন টোকেন তৈরি করবে।
একটি HTTP অনুরোধ পাঠান
আপনার এপিআই কী এবং অ্যাক্সেস টোকেন থাকার পরে, আপনি পরিষেবাটিতে একটি HTTP কল করার জন্য একটি শেলে নিম্নলিখিত কমান্ডটি চালাতে পারেন। নীচের উদাহরণে, আমরা /v1/photo:startUpload
পদ্ধতিতে একটি কল করি।
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
নমুনা অনুরোধ
উপরের HTTP অনুরোধ পাঠানোর জন্য আপনি স্বাচ্ছন্দ্য বোধ করার পরে, কিছু অতিরিক্ত পদ্ধতি ব্যবহার করার চেষ্টা করুন। বিভিন্ন কল নীচে প্রদর্শিত হয়.
আপনার ছবির একটি তালিকা পাওয়া যাচ্ছে
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
একটি ছবি হচ্ছে
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
একটি ছবি আপলোড করা হচ্ছে
একটি ছবি তৈরি করতে তিনটি পৃথক কল প্রয়োজন৷ প্রথম কলটি একটি আপলোড URL প্রদান করবে, যা দ্বিতীয় কলে ফটো বাইট আপলোড করতে ব্যবহৃত হয়। ফটো বাইট আপলোড হওয়ার পরে, তৃতীয় কলটি ছবির মেটাডেটা আপলোড করে এবং ফটো আইডি ফেরত দেয়।
- একটি আপলোড URL অনুরোধ করুন
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
- আপলোড URL-এ ফটো বাইট আপলোড করুন
$ curl --request POST \ --url 'UPLOAD_URL' \ --upload-file 'PATH_TO_FILE' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
- ছবির মেটাডেটা আপলোড করুন
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "uploadReference": { "uploadUrl": "UPLOAD_URL" }, "pose": { "heading": 105.0, "latLngPair": { "latitude": 46.7512623, "longitude": -121.9376983 } }, "captureTime": { "seconds": 1483202694 }, }'
একটি ফটো আপডেট করা হচ্ছে
$ curl --request PUT \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY&updateMask=pose.latLngPair' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "pose": { "latLngPair": { "latitude": 46.7512624, "longitude": -121.9376982 } } }'
ব্যাচ একাধিক ফটো আপডেট করছে
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photos:batchUpdate?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "updatePhotoRequests": [ { "photo": { "photoId": { "id": "FIRST_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1701638, "longitude": -122.3624387 } } }, "updateMask": "pose.latLngPair" }, { "photo": { "photoId": { "id": "SECOND_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1685704, "longitude": -122.3618021 } } }, "updateMask": "pose.latLngPair" } ] }'
একটি ছবি মুছে ফেলা হচ্ছে
$ curl --request DELETE \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
UpdateMask কি?
updateMask
হল আপনার অনুরোধগুলি ছোট রাখার একটি উপায় যদি আপনি সমস্ত ছবির পরিবর্তে আপনার ছবির কিছু অংশ আপডেট করতে চান। updateMask
ছাড়া, আপনার অনুরোধ পুরো ফটো আপডেট করে। এর মানে হল যে আপনি যদি updateMask
সেট না করেন এবং আপনার অনুরোধে pose
অনুপস্থিত থাকে, তাহলে আপনার ছবির pose
সাফ হয়ে যাবে। updateMask
জন্য কিছু সম্ভাব্য মান হল: places, pose.heading, pose.latlngpair, pose.level, connections
। আপনি updateMask
এ একাধিক কমা-ডিলিমিটেড মান রাখতে পারেন।