API Thông tin chi tiết về địa điểm hỗ trợ việc sử dụng OAuth 2.0 để xác thực. Google hỗ trợ các trường hợp OAuth 2.0 phổ biến, chẳng hạn như các trường hợp cho máy chủ web.
Tài liệu này mô tả cách truyền mã thông báo OAuth đến lệnh gọi API Thông tin chi tiết về địa điểm trong môi trường phát triển. Để biết hướng dẫn về cách sử dụng OAuth trong môi trường phiên bản chính thức, hãy xem phần Xác thực tại Google.
Trước khi bắt đầu
Trước khi bắt đầu sử dụng API Thông tin chi tiết về địa điểm, bạn cần có một dự án có tài khoản thanh toán và API Thông tin chi tiết về địa điểm được bật. Bạn nên tạo nhiều Chủ sở hữu dự án và Quản trị viên thanh toán để luôn có người đảm nhận các vai trò này cho nhóm của bạn. Để tìm hiểu thêm, hãy xem bài viết Thiết lập trong Cloud Console.
Giới thiệu về OAuth
Có nhiều cách để tạo và quản lý mã thông báo truy cập bằng OAuth dựa trên môi trường triển khai của bạn.
Ví dụ: hệ thống OAuth 2.0 của Google hỗ trợ các hoạt động tương tác giữa máy chủ với máy chủ, chẳng hạn như các hoạt động tương tác giữa ứng dụng của bạn và một dịch vụ của Google. Đối với trường hợp này, bạn cần có một tài khoản dịch vụ. Đây là tài khoản thuộc về ứng dụng của bạn thay vì thuộc về một người dùng cuối cá nhân. Ứng dụng của bạn thay mặt tài khoản dịch vụ gọi API của Google, vì vậy, người dùng không trực tiếp tham gia. Để biết thêm thông tin về các phương thức xác thực, hãy xem bài viết Xác thực tại Google.
Ngoài ra, bạn có thể sử dụng API Thông tin chi tiết về địa điểm trong một ứng dụng di động Android hoặc iOS. Để biết thông tin chung về cách sử dụng OAuth với API Thông tin chi tiết về địa điểm, bao gồm cả thông tin về cách quản lý mã thông báo truy cập cho nhiều môi trường triển khai, hãy xem bài viết Sử dụng OAuth 2.0 để truy cập vào API của Google.
Giới thiệu về phạm vi OAuth
Để sử dụng OAuth với API Thông tin chi tiết về địa điểm, bạn phải chỉ định phạm vi cho mã thông báo OAuth:
https://www.googleapis.com/auth/cloud-platform
Ví dụ: Thử các lệnh gọi API REST trong môi trường phát triển cục bộ
Nếu muốn dùng mã thông báo OAuth để thử API Thông tin chi tiết về địa điểm nhưng chưa thiết lập môi trường để tạo mã thông báo, bạn có thể sử dụng quy trình trong phần này để thực hiện lệnh gọi.
Ví dụ này mô tả cách sử dụng mã thông báo OAuth do Thông tin xác thực mặc định của ứng dụng (ADC) cung cấp để thực hiện lệnh gọi. Để biết thông tin về cách sử dụng ADC để gọi API của Google bằng thư viện ứng dụng, hãy xem phần Xác thực bằng thư viện ứng dụng.
Điều kiện tiên quyết
Trước khi bạn có thể tạo yêu cầu REST bằng ADC, hãy sử dụng Google Cloud CLI để cung cấp thông tin xác thực cho ADC:
- Nếu bạn chưa tạo, hãy tạo một dự án và bật tính năng thanh toán bằng cách làm theo các bước trong phần Thiết lập trong Google Cloud Console.
- Cài đặt và khởi chạy CLI gcloud.
Chạy lệnh
gcloud
sau trên máy cục bộ để tạo tệp thông tin xác thực:gcloud auth application-default login
- Màn hình đăng nhập sẽ xuất hiện. Sau khi bạn đăng nhập, thông tin xác thực của bạn sẽ được lưu trữ trong tệp thông tin xác thực cục bộ mà ADC sử dụng.
Để biết thêm thông tin, hãy xem phần Môi trường phát triển cục bộ trong tài liệu Cung cấp thông tin xác thực cho Thông tin xác thực mặc định của ứng dụng.
Tạo yêu cầu REST
Trong ví dụ này, bạn truyền hai tiêu đề yêu cầu:
Truyền mã thông báo OAuth trong tiêu đề
Authorization
bằng cách sử dụng lệnh sau để tạo mã thông báo:gcloud auth application-default print-access-token
Mã thông báo được trả về có phạm vi là
https://www.googleapis.com/auth/cloud-platform.
- Truyền mã nhận dạng hoặc tên của dự án Google Cloud đã bật tính năng thanh toán trong tiêu đề
X-Goog-User-Project
. Để tìm hiểu thêm, hãy xem phần Thiết lập trong Cloud Console.
Ví dụ sau đây thực hiện lệnh gọi đến API Thông tin chi tiết về địa điểm bằng mã thông báo OAuth:
curl -X POST 'https://areainsights.googleapis.com/v1:computeInsights' \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ --data '{ "insights":[ "INSIGHT_COUNT" ], "filter":{ "location_filter":{ "region":{ "place":"places/ChIJIQBpAG2ahYAR_6128GcTUEo" } }, "type_filter":{ "included_types":[ "restaurant" ] }, "price_levels":[ "PRICE_LEVEL_INEXPENSIVE" ] } }'
Khắc phục sự cố
Nếu yêu cầu của bạn trả về thông báo lỗi về việc thông tin xác thực của người dùng cuối không được API này hỗ trợ, hãy xem phần Thông tin xác thực của người dùng không hoạt động.