ביצוע הקריאות הראשונות ל-API

כדי לבצע קריאות בסיסיות ל-Street View Publish API, יש לבצע את השלבים המפורטים במדריך הזה.

ביצוע שיחות HTTP

ניתן לקרוא ל-Street View Publish API באמצעות כלים מרובים, כמו Curl, wget ו-Postman. ברוב המקרים מומלץ להשתמש בשפת תכנות כדי לפתח אפליקציית לקוח שמשתמשת ב-API, אבל בשיעור ההדרכה הזה ננחה אותך בצעדים הבסיסיים של הפקודות האישיות.

אנחנו מספקים גם ספריות לקוח אם אינך רוצה לבצע שיחות HTTP ישירות.

דרישות מוקדמות

  1. נדרש חשבון Google כדי לגשת למסוף Google API, לבקש מפתח API ולרשום את האפליקציה שלך.

  2. עליך ליצור פרויקט ב-Google Developers Console ולקבל הרשאות הרשאה כדי שהאפליקציה שלך תוכל לשלוח בקשות ל-API.

  3. אחרי שיוצרים את הפרויקט, חשוב לוודא ש-Street View Publish API הוא אחד מהשירותים שבהם האפליקציה רשומה.

    1. נכנסים ל-API Console ובוחרים את הפרויקט שרשמתם כרגע.
    2. נכנסים לדף APIs מופעל. מוודאים ש-Google Street View API מופיע ברשימת ממשקי ה-API המופעלים. אם כן, פותחים את ספריית ה-API ומפעילים את ה-API.
  4. במדריך לאימות מוסבר איך להטמיע הרשאה של OAuth 2.0.

  5. יש ללמוד את העקרונות הבסיסיים של פורמט הנתונים JavaScript JavaScript Object Notation (JSON). JSON הוא פורמט נתונים בלתי תלוי נפוץ, שמספק ייצוג טקסט פשוט של מבני נתונים שרירותיים. מידע נוסף זמין בכתובת json.org.

קבלת מפתח API

למטרות אימות ומכסה, יהיה עליך להשתמש ב-Google Street View Publish API עם פרטי כניסה שנוצרו מ-Console Console שלך.

  1. היכנס לדף פרטי הכניסה במסוף המפתחים שלך.
  2. אם כבר יש לכם מפתח API, תוכלו להשתמש בו. אחרת, יש ליצור מפתח חדש על ידי בחירה באפשרות מפתח API מהתפריט פרטי כניסה חדשים.

קבלת אסימון גישה

  1. עוברים אל מגרש המשחקים של OAuth למפתחים ב-Google Developers 2.0.
  2. לוחצים על תפריט ההגדרות (סמל גלגל השיניים בפינה השמאלית העליונה), מסמנים את האפשרות שימוש בפרטי הכניסה ל-OAuth ומזינים את Client ID ואת Client secret בשדות המתאימים. לאחר מכן לוחצים על סגירה.
  3. בקטע שלב 1: בחירת & הרשאה ממשקי API, הזנת ה-API בהיקף https://www.googleapis.com/auth/streetviewpublish בשדה קלט ההיקפים שלך, ולאחר מכן לחיצה על מתן הרשאה לממשקי ה-API. ייפתח דף חדש כדי לאשר שברצונך לאשר את ה-API.
  4. לוחצים על קוד הרשאה של Exchange עבור אסימונים. פעולה זו תאכלס את השדה אסימון גישה, שמכיל את אסימון הגישה שלך לשימוש בשלב הבא. תוקף אסימון הגישה יפוג בעוד 60 דקות. ניתן לבחור באפשרות לרענן את האסימון באופן אוטומטי לפני שתוקפו פג, וכך ייווצר אסימון חדש.

שליחה של בקשת HTTP

אחרי שמקבלים את מפתח ה-API ואת אסימון הגישה, תוכלו להריץ את הפקודה הבאה במעטפת כדי לבצע קריאה ל-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 להעלאה, שבה ייעשה שימוש בשיחה השנייה להעלאת הבייטים לתמונות. אחרי שמעלים את הבייטים, השיחה השלישית מעלה את המטא-נתונים של התמונה ומחזירה את התעודה המזהה.

  1. בקשת כתובת 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'
          
  2. יש להעלות את הבייטים אל כתובת ה-URL להעלאה
            $ 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, הבקשה שלך תעדכן את התמונה כולה. פירוש הדבר הוא שאם לא מגדירים את updateMask ובבקשה חסר pose, התמונה pose תימחק. ערכים אפשריים עבור updateMask הם: places, pose.heading, pose.latlngpair, pose.level, connections. אפשר להוסיף כמה ערכים מופרדים בפסיקים ב-updateMask.