पहला एपीआई कॉल करें

Street View पब्लिश एपीआई की मदद से, सामान्य कॉल करने के लिए ज़रूरी चरण पूरे करने के लिए, इस ट्यूटोरियल में दिया गया तरीका अपनाएं.

एचटीटीपी कॉल करना

Street View Publish API को कर्ल, wget, और पोस्टमैन जैसे कई टूल की मदद से कॉल किया जा सकता है. ज़्यादातर मामलों में, एपीआई का इस्तेमाल करने वाला क्लाइंट ऐप्लिकेशन बनाने के लिए, अपनी पसंद की प्रोग्रामिंग भाषा का इस्तेमाल करें. हालांकि, इस ट्यूटोरियल में आपको अलग-अलग निर्देशों की मदद से, बुनियादी बातों की जानकारी मिलेगी.

अगर आप डायरेक्ट एचटीटीपी कॉल नहीं करना चाहते हैं, तो हम कुछ क्लाइंट लाइब्रेरी भी उपलब्ध कराते हैं.

ज़रूरी शर्तें

  1. Google API (एपीआई) कंसोल को ऐक्सेस करने, एपीआई कुंजी का अनुरोध करने, और अपने ऐप्लिकेशन को रजिस्टर करने के लिए, आपके पास Google खाता होना ज़रूरी है.

  2. Google Developers Console में एक प्रोजेक्ट बनाएं और ऑथराइज़ेशन क्रेडेंशियल पाएं, ताकि आपका ऐप्लिकेशन एपीआई अनुरोध सबमिट कर सके.

  3. अपना प्रोजेक्ट बनाने के बाद, पक्का करें कि 'स्ट्रीट व्यू पब्लिश एपीआई' उन सेवाओं में से एक है जिनका इस्तेमाल करके आपका ऐप्लिकेशन रजिस्टर किया गया है:

    1. एपीआई कंसोल पर जाएं और वह प्रोजेक्ट चुनें जिसे आपने अभी-अभी रजिस्टर किया है.
    2. चालू एपीआई पेज पर जाएं. पक्का करें कि Google Street View एपीआई, चालू एपीआई की सूची में शामिल हो. अगर यह't नहीं है, तो एपीआई लाइब्रेरी खोलें और एपीआई चालू करें.
  4. OAuth 2.0 को लागू करने का तरीका जानने के लिए, पुष्टि करने से जुड़ी गाइड पढ़ें.

  5. JavaScript Object Notation (JSON) डेटा फ़ॉर्मैट के मुख्य कॉन्सेप्ट के बारे में जानें. JSON, भाषा का इंडिपेंडेंट डेटा फ़ॉर्मैट है जो सामान्य तौर पर इस्तेमाल किया जाता है. इसकी मदद से, आर्बिट्रेरी डेटा स्ट्रक्चर को टेक्स्ट के रूप में आसानी से दिखाया जा सकता है. ज़्यादा जानकारी के लिए, json.org देखें.

कोई एपीआई कुंजी पाएं

प्रमाणीकरण और कोटा के उद्देश्यों के लिए, आपको अपने डेवलपर कंसोल से जनरेट किए गए क्रेडेंशियल के साथ Google स्ट्रीट व्यू प्रकाशन एपीआई का इस्तेमाल करना होगा.

  1. अपने डेवलपर कंसोल में क्रेडेंशियल पेज पर जाएं.
  2. अगर आपके पास पहले से कोई एपीआई कुंजी है, तो आप उससे मिली वैल्यू का इस्तेमाल कर सकते हैं. या फिर, नए क्रेडेंशियल मेन्यू से एपीआई कुंजी चुनकर एक नई कुंजी बनाएं.

ऐक्सेस टोकन पाना

  1. Google Developers OAuth 2.0 प्लेग्राउंड पर जाएं.
  2. सेटिंग मेन्यू (ऊपर दाईं ओर मौजूद गियर आइकॉन) पर क्लिक करें और अपने OAuth क्रेडेंशियल इस्तेमाल करें को चुनें. इसके बाद, उनसे जुड़े फ़ील्ड में अपना Client ID और Client secret डालें, फिर बंद करें पर क्लिक करें.
  3. चरण 1: एएमपी को चुनें और अनुमति दें को चुनें. इसके बाद, अपने दायरे वाले फ़ील्ड में एपीआई का दायरा https://www.googleapis.com/auth/streetviewpublish डालें और एपीआई की अनुमति दें पर क्लिक करें. एक नया पेज खुलेगा, जिसमें इस बात की पुष्टि की जाएगी कि आपको एपीआई को अनुमति देनी है.
  4. टोकन के लिए एक्सचेंज ऑथराइज़ेशन कोड पर क्लिक करें. इससे, ऐक्सेस टोकन फ़ील्ड में जानकारी भर जाएगी. इसमें अगले चरण में इस्तेमाल किया जाने वाला आपका ऐक्सेस टोकन शामिल होगा. ऐक्सेस टोकन की समयसीमा 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'
  

फ़ोटो अपलोड करना

फ़ोटो बनाने के लिए तीन अलग-अलग कॉल की ज़रूरत होती है. पहली कॉल एक अपलोड यूआरएल दिखाएगी, जिसका इस्तेमाल फ़ोटो बाइट अपलोड करने के लिए दूसरे कॉल में किया जाता है. फ़ोटो बाइट अपलोड होने के बाद, तीसरा कॉल फ़ोटो का मेटाडेटा अपलोड करता है और फ़ोटो आईडी दिखाता है.

  1. अपलोड यूआरएल का अनुरोध करें
            $ 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'
          
  2. अपलोड यूआरएल पर फ़ोटो बाइट अपलोड करें
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. फ़ोटो का मेटाडेटा अपलोड करें
            $ 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 सेट नहीं करते हैं और आपके अनुरोध में pose मौजूद नहीं है, तो आपकी फ़ोटो और pose को मिटा दिया जाएगा. updateMask के लिए कुछ संभावित वैल्यू ये हैं: places, pose.heading, pose.latlngpair, pose.level, connections. updateMask में, कॉमा लगाकर अलग की गई कई वैल्यू रखी जा सकती हैं.