Street View Publishing API पर बुनियादी कॉल करने के ज़रूरी चरणों को पूरा करने के लिए, इस ट्यूटोरियल में दिया गया तरीका अपनाएं.
एचटीटीपी कॉल करना
Street View Publishing API को कई टूल का इस्तेमाल करके कॉल किया जा सकता है. जैसे, curl, wget, और Postman. ज़्यादातर मामलों में, क्लाइंट ऐप्लिकेशन बनाने के लिए, आपको अपनी पसंद की प्रोग्रामिंग भाषा का इस्तेमाल करना होगा जो एपीआई का इस्तेमाल करता है, लेकिन यह ट्यूटोरियल आपका अलग-अलग कमांड इस्तेमाल कर सकते हैं.
हम आपको कुछ क्लाइंट लाइब्रेरी भी उपलब्ध कराते हैं, अगर आपको डायरेक्ट एचटीटीपी कॉल करना चाहते हैं.
ज़रूरी शर्तें
-
Google API कंसोल को ऐक्सेस करने, एपीआई पासकोड का अनुरोध करने, और अपना ऐप्लिकेशन रजिस्टर करने के लिए, आपके पास एक Google खाता होना चाहिए.
-
Google Developers Console में एक प्रोजेक्ट बनाएं और अनुमति से जुड़े क्रेडेंशियल पाएं, ताकि आपका ऐप्लिकेशन एपीआई अनुरोध सबमिट कर सके.
-
प्रोजेक्ट बनाने के बाद, पक्का करें कि Street View Publishing API, उन सेवाओं में से एक है जिसे इस्तेमाल करने के लिए आपके ऐप्लिकेशन को रजिस्टर किया गया है:
- एपीआई कंसोल पर जाएं और वह प्रोजेक्ट चुनें जिसे आपने अभी-अभी रजिस्टर किया है.
- चालू किए गए एपीआई पेज पर जाएं. पक्का करें कि Google Street View एपीआई, चालू एपीआई की सूची में हो. अगर ऐसा नहीं है, तो एपीआई लाइब्रेरी खोलें और एपीआई चालू करें.
-
OAuth 2.0 की अनुमति देने का तरीका जानने के लिए, पुष्टि करने से जुड़ी गाइड पढ़ें.
-
JavaScript ऑब्जेक्ट नोटेशन (JSON) डेटा फ़ॉर्मैट के मुख्य सिद्धांतों के बारे में जानें. JSON एक सामान्य और भाषा पर निर्भर डेटा फ़ॉर्मैट है, जो आर्बिट्रेरी डेटा स्ट्रक्चर को सामान्य टेक्स्ट में दिखाता है. ज़्यादा जानकारी के लिए, json.org पर जाएं.
एपीआई पासकोड पाना
पुष्टि करने और कोटा बढ़ाने के लिए, आपको अपने Developers Console से जनरेट किए गए क्रेडेंशियल के साथ Google Street View Publishing API का इस्तेमाल करना होगा.
- क्रेडेंशियल पर जाएं पेज पर जाएं.
- अगर आपके पास पहले से एपीआई पासकोड है, तो उससे मिली वैल्यू का इस्तेमाल किया जा सकता है. या फिर, नए क्रेडेंशियल मेन्यू से एपीआई पासकोड को चुनकर, नया क्रेडेंशियल बनाएं.
ऐक्सेस टोकन पाना
- Google Developers OAuth 2.0 प्लेग्राउंड पर जाएं.
- सेटिंग मेन्यू (सबसे ऊपर दाईं ओर मौजूद गियर आइकॉन) पर क्लिक करें. इसके बाद, अपने OAuth क्रेडेंशियल का इस्तेमाल करें को चुनें और अपना
Client ID
और संबंधित फ़ील्ड मेंClient secret
और फिर बंद करें पर क्लिक करें. - चरण 1: चुनें और API को अनुमति दें, तो एपीआई का दायरा डालें
https://www.googleapis.com/auth/streetviewpublish
अपने दायरे डालें फ़ील्ड में, फिर एपीआई को अनुमति दें पर क्लिक करें. ऐप्लिकेशन नया पेज खुलेगा, जो यह पुष्टि करने के लिए खुलेगा कि आप API को अनुमति देना चाहते हैं. - टोकन के लिए ऑथराइज़ेशन कोड एक्सचेंज करें पर क्लिक करें. इससे ऐक्सेस टोकन फ़ील्ड, जिसमें आपका ऐक्सेस टोकन शामिल होगा. अगला चरण. ऐक्सेस टोकन की समयसीमा 60 मिनट में खत्म हो जाएगी. आप टोकन की समयसीमा खत्म होने से पहले, उसे अपने-आप रीफ़्रेश करें. इससे एक नया टोकन बन जाएगा.
एचटीटीपी अनुरोध भेजना
एपीआई पासकोड और ऐक्सेस टोकन पाने के बाद, यह कमांड इस्तेमाल किया जा सकता है
शेल पर नेविगेट कर सकते हैं. नीचे दिए गए उदाहरण में, हमने
/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'
सैंपल अनुरोध
ऊपर एचटीटीपी अनुरोध भेजने के बाद, कुछ और तरीके आज़माकर देखें तरीकों का इस्तेमाल करना होगा. अलग-अलग तरह के कॉल नीचे दिखाए गए हैं.
फ़ोटो की सूची तैयार की जा रही है
$ 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'
कोई फ़ोटो अपलोड करना
फ़ोटो बनाने के लिए तीन अलग-अलग कॉल की आवश्यकता होती है. पहले कॉल में आपको अपलोड यूआरएल दिखेगा, जिसका इस्तेमाल दूसरे कॉल में फ़ोटो बाइट अपलोड करने के लिए किया जाता है. फ़ोटो बाइट अपलोड होने के बाद, तीसरा कॉल, फ़ोटो का मेटाडेटा अपलोड करता है और फ़ोटो आईडी दिखाता है.
- अपलोड यूआरएल का अनुरोध करना
$ 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'
- अपलोड यूआरएल में फ़ोटो बाइट अपलोड करें
$ 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'
updatedMask क्या है?
अगर आपको डेटा का कोई हिस्सा अपडेट करना है, तो updateMask
अनुरोधों को छोटा रखने का एक तरीका है.
फ़ोटो पर क्लिक करें. updateMask
के बिना, आपका अनुरोध
पूरी फ़ोटो. इसका मतलब है कि अगर आप updateMask
को सेट नहीं करते हैं और आपका अनुरोध
pose
मौजूद नहीं है, आपकी फ़ोटो की pose
हटा दी जाएगी. कुछ संभावित वैल्यू
updateMask
के लिए ये हैं: places, pose.heading, pose.latlngpair, pose.level,
connections
. updateMask
में, कॉमा लगाकर अलग की गई एक से ज़्यादा वैल्यू रखी जा सकती हैं.