Thực hiện lệnh gọi API đầu tiên

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Để hoàn thành các bước cần thiết để thực hiện các lệnh gọi cơ bản tới API xuất bản Chế độ xem phố, hãy làm theo các bước trong hướng dẫn này.

Gọi HTTP

Bạn có thể gọi API Phát hành chế độ xem phố bằng nhiều công cụ như curl, wget và Postman. Trong hầu hết trường hợp, bạn nên sử dụng ngôn ngữ lập trình mà bạn chọn để tạo một ứng dụng khách sử dụng API. Tuy nhiên, hướng dẫn này sẽ giới thiệu cho bạn các khái niệm cơ bản bằng cách hướng dẫn bạn từng lệnh.

Chúng tôi cũng cung cấp một số thư viện ứng dụng nếu bạn không muốn thực hiện lệnh gọi HTTP trực tiếp.

Điều kiện tiên quyết

  1. Bạn cần có một Tài khoản Google để truy cập vào Bảng điều khiển API của Google, yêu cầu khóa API và đăng ký ứng dụng của bạn.

  2. Tạo một dự án trong Google Developers Console và lấy thông tin đăng nhập ủy quyền để ứng dụng của bạn có thể gửi yêu cầu API.

  3. Sau khi tạo dự án, hãy đảm bảo API Phát hành chế độ xem phố là một trong các dịch vụ mà ứng dụng của bạn được đăng ký sử dụng:

    1. Chuyển đến Bảng điều khiển API rồi chọn dự án mà bạn vừa đăng ký.
    2. Truy cập vào trang API đã bật. Đảm bảo API Chế độ xem phố của Google nằm trong danh sách các API đã bật. Nếu chưa có, hãy mở Thư viện API rồi bật API.
  4. Đọc hướng dẫn xác thực để tìm hiểu cách triển khai ủy quyền OAuth 2.0.

  5. Làm quen với các khái niệm chính của định dạng dữ liệu JavaScript Object Notation (JSON). JSON là một định dạng dữ liệu phổ biến, không phụ thuộc vào ngôn ngữ, cung cấp bản trình bày văn bản đơn giản về các cấu trúc dữ liệu tùy ý. Để biết thêm thông tin, hãy xem json.org.

Lấy khoá API

Để xác thực và hạn mức, bạn cần sử dụng API Phát hành chế độ xem phố của Google với thông tin xác thực được tạo từ Developers Console.

  1. Chuyển đến trang Thông tin đăng nhập trong Developers Console.
  2. Nếu đã có khoá API, bạn có thể sử dụng giá trị của khoá API đó. Nếu không, hãy tạo một khoá mới bằng cách chọn Khoá API trong trình đơn Thông tin đăng nhập mới.

Lấy mã truy cập

  1. Chuyển đến Google Play OAuth 2.0 Playground.
  2. Nhấp vào trình đơn cài đặt (biểu tượng bánh răng ở trên cùng bên phải), chọn Sử dụng thông tin đăng nhập OAuth của riêng bạn rồi nhập Client IDClient secret vào các trường tương ứng, sau đó nhấp vào Đóng.
  3. Trong Bước 1: Chọn & ủy quyền API, nhập phạm vi API https://www.googleapis.com/auth/streetviewpublish vào trường Nhập phạm vi của riêng bạn, sau đó nhấp vào Ủy quyền API. Một trang mới sẽ mở ra để xác nhận rằng bạn muốn cấp quyền cho API này.
  4. Nhấp vào Mã uỷ quyền Exchange cho mã thông báo. Thao tác này sẽ điền vào trường Mã thông báo truy cập. Trường này sẽ chứa mã truy cập của bạn để dùng trong bước tiếp theo. Mã truy cập sẽ hết hạn sau 60 phút. Bạn có thể chọn tự động làm mới mã thông báo trước khi hết hạn. Thao tác này sẽ tạo mã thông báo mới.

Gửi yêu cầu HTTP

Sau khi có khoá API và mã truy cập, bạn có thể chạy lệnh sau trên một shell để thực hiện lệnh gọi HTTP đến dịch vụ. Trong ví dụ bên dưới, chúng ta sẽ gọi một phương thức /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'
  

Yêu cầu mẫu

Sau khi bạn đã sẵn sàng gửi yêu cầu HTTP ở trên, hãy thử dùng một số phương thức khác. Dưới đây là nhiều cuộc gọi khác nhau.

Đang tải danh sách ảnh của bạn

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Lấy ảnh

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Tải ảnh lên

Việc tạo ảnh yêu cầu 3 cuộc gọi riêng biệt. Lệnh gọi đầu tiên sẽ trả về URL tải lên. URL này được dùng trong lệnh gọi thứ hai để tải các byte ảnh lên. Sau khi các byte ảnh được tải lên, lệnh gọi thứ ba sẽ tải siêu dữ liệu của ảnh lên và trả về mã ảnh.

  1. Yêu cầu URL tải lên
            $ 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. Tải các byte ảnh lên URL tải lên
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. Tải siêu dữ liệu của ảnh lên
            $ 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
                      },
                    }'
          

Đang cập nhật ảnh

   $ 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
                 }
               }
             }'
  

Cập nhật hàng loạt nhiều ảnh

   $ 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"
                  }
              ]
          }'
  

Xóa ảnh

    $ curl --request DELETE \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
  

updateMask là gì?

updateMask là cách để bạn giảm số lượng yêu cầu nếu bạn muốn cập nhật một phần ảnh của mình thay vì tất cả ảnh. Nếu không có updateMask, yêu cầu của bạn sẽ cập nhật toàn bộ ảnh. Điều này có nghĩa là nếu bạn không đặt updateMask và yêu cầu của bạn bị thiếu pose, thì ảnh pose của bạn sẽ bị xoá. updateMask có thể có một số giá trị sau: places, pose.heading, pose.latlngpair, pose.level, connections. Bạn có thể đặt nhiều giá trị được phân tách bằng dấu phẩy trong updateMask.