Google Health API cho phép ứng dụng của bạn nhận thông báo theo thời gian thực khi dữ liệu sức khoẻ của người dùng thay đổi. Thay vì thăm dò các thay đổi, máy chủ của bạn sẽ nhận được yêu cầu POST qua HTTPS (webhook){:target="_blank" class="external"} ngay khi có dữ liệu trong Google Health API.
Các loại dữ liệu được hỗ trợ
Thông báo webhook được hỗ trợ cho các loại dữ liệu sau:
- Số phút hoạt động cho vùng nhịp tim
- Cấp độ hoạt động
- Cao độ
- Đường huyết
- Lượng mỡ trong cơ thể
- Lượng calo nạp vào vùng nhịp tim
- Sự thay đổi tần số tim hằng ngày
- Vùng nhịp tim hằng ngày
- Độ bão hoà oxy hằng ngày
- Nhịp thở hằng ngày
- Tần số tim lúc nghỉ ngơi hằng ngày
- Số liệu phái sinh về nhiệt độ giấc ngủ hằng ngày
- Khoảng cách
- Bài tập
- Tầng
- Nhịp tim
- Sự thay đổi tần số tim
- Chiều cao
- Nhật ký về lượng nước uống
- Nhật ký dinh dưỡng
- Tóm tắt dữ liệu hô hấp trong giấc ngủ
- Tốc độ tiêu thụ oxy tối đa khi chạy
- Thời gian ít vận động
- Ngủ
- Các bước
- Thời gian ở vùng nhịp tim
- Tổng lượng calo
- Trọng lượng
Thông báo chỉ được gửi cho các loại dữ liệu này khi người dùng đã cấp quyền đồng ý cho một trong các phạm vi tương ứng:
- Hoạt động, bao gồm các loại dữ liệu về bước, cao độ, khoảng cách và tầng:
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonlyhttps://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly
- Chỉ số sức khoẻ, bao gồm loại dữ liệu về trọng lượng:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonlyhttps://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly
- Giấc ngủ, bao gồm loại dữ liệu về giấc ngủ:
https://www.googleapis.com/auth/googlehealth.sleep.readonlyhttps://www.googleapis.com/auth/googlehealth.sleep.writeonly
Tài khoản dịch vụ IAM
Mặc dù không bắt buộc, nhưng bạn nên sử dụng Tài khoản dịch vụ IAM khi định cấu hình người đăng ký cho Google Health API. Tài khoản dịch vụ cung cấp khả năng bảo mật tốt hơn cho khối lượng công việc của ứng dụng so với tài khoản người dùng tiêu chuẩn thông qua các tính năng sau:
- Thông tin đăng nhập tự động có thời gian tồn tại ngắn: Khi được đính kèm vào môi trường thực thi Google Cloud (chẳng hạn như Compute Engine, Cloud Run hoặc Google Kubernetes Engine), tài khoản dịch vụ sẽ tự động nhận và luân chuyển thông tin đăng nhập an toàn có thời gian tồn tại ngắn. Điều này giúp loại bỏ rủi ro khi quản lý và lưu trữ các khoá tĩnh liên tục.
- Nguyên tắc về đặc quyền tối thiểu: Tài khoản dịch vụ cung cấp danh tính riêng cho khối lượng công việc. Bạn chỉ có thể cấp cho các tài khoản này những quyền cụ thể cần thiết để quản lý điểm cuối của người đăng ký, tránh quyền truy cập rộng hơn vào các tài nguyên của Google Cloud.
- Tính độc lập về vòng đời: Tài khoản dịch vụ hoạt động độc lập với tài khoản của bất kỳ người dùng cá nhân nào, đảm bảo rằng những thay đổi về nhân sự không ảnh hưởng đến tính ổn định của quá trình xác thực dài hạn.
Thiết lập tài khoản dịch vụ
Cách định cấu hình ứng dụng người đăng ký để xác thực bằng tài khoản dịch vụ:
- Tạo tài khoản dịch vụ: Trong bảng điều khiển Cloud, hãy chuyển đến trang IAM và Trang quản trị của dự án để tạo tài khoản dịch vụ mới do người dùng quản lý.
- Cấp các vai trò IAM cần thiết: Chỉ định cho tài khoản dịch vụ các vai trò thích hợp cần thiết để quản lý người đăng ký trong dự án Google Cloud của bạn.
- Đính kèm tài khoản dịch vụ vào khối lượng công việc: Định cấu hình môi trường lưu trữ logic của người đăng ký để chạy dưới dạng tài khoản dịch vụ mới.
Điều này cho phép mã xử lý ứng dụng của bạn (chẳng hạn như thư viện ứng dụng API của Google) tự động phát hiện và sử dụng thông tin đăng nhập có thời gian tồn tại ngắn của tài khoản dịch vụ khi gọi API REST
projects.subscribers.
Vai trò CPE
Để quản lý Người đăng ký hoặc Gói thuê bao của Google Health API, bạn phải cấp vai trò thích hợp cho Tài khoản dịch vụ được mạo danh thực hiện các lệnh gọi API. Tuỳ thuộc vào cấp độ truy cập cần thiết, hãy chỉ định một trong các vai trò sau:
- Quyền đọc Google Health API
- Quyền chỉnh sửa Google Health API
- Quyền quản trị Google Health API
Tìm hiểu thêm về các vai trò và quyền IAM của Google Health API.
Quản lý người đăng ký
Để có thể nhận thông báo, bạn phải đăng ký Người đăng ký, đại diện cho điểm cuối thông báo của ứng dụng. Bạn có thể quản lý người đăng ký
bằng API REST có tại
projects.subscribers.
Điểm cuối của người đăng ký phải sử dụng HTTPS (TLSv1.2+) và có thể truy cập công khai.
Trong quá trình tạo và cập nhật người đăng ký, Google Health API sẽ thực hiện thử thách xác minh để đảm bảo bạn sở hữu URI điểm cuối. Nếu quá trình xác minh không thành công, thì các thao tác tạo và cập nhật người đăng ký sẽ không thành công với FailedPreconditionException.
Tạo người đăng ký
Để đăng ký người đăng ký mới cho dự án, hãy sử dụng
create
điểm cuối. Bạn cần cung cấp:
project-id: Số dự án nơi tài khoản dịch vụ webhook được tạo.subscriberId: Giá trị nhận dạng duy nhất mà bạn cung cấp cho người đăng ký. Mã nhận dạng này phải có từ 4 đến 36 ký tự và khớp với biểu thức chính quy ([a-z]([a-z0-9-]{2,34}[a-z0-9])).endpointUri: URL đích cho thông báo webhook.subscriberConfigs: Các loại dữ liệu mà bạn muốn nhận thông báo và chính sách thuê bao cho từng loại dữ liệu.endpointAuthorization: Cơ chế uỷ quyền cho điểm cuối của bạn. Cơ chế này phải chứasecretmà bạn cung cấp. Giá trị củasecretđược gửi trong tiêu đềAuthorizationcùng với mỗi thông báo. Bạn có thể sử dụng mã thông báo này để xác minh rằng các yêu cầu đến là từ Google Health API. Ví dụ: bạn có thể đặtsecretthànhBearer R4nd0m5tr1ng123để xác thực bằng mã thông báo hoặcBasic dXNlcjpwYXNzd29yZA==để xác thực cơ bản.
Trong subscriberConfigs, bạn phải đặt subscriptionCreatePolicy cho từng loại dữ liệu. Đặt thành AUTOMATIC để sử dụng gói thuê bao tự động hoặc MANUAL nếu bạn dự định tự quản lý gói thuê bao của người dùng. Hãy xem phần
gói thuê bao tự động và
gói thuê bao thủ công để biết thêm thông tin chi tiết về từng lựa chọn.
Yêu cầu
POST https://health.googleapis.com/v4/projects/project-id/subscribers?subscriberId=subscriber-id
{
"endpointUri": "https://myapp.com/webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
],
"endpointAuthorization": {
"secret": "Bearer example-secret-token"
}
}Phản hồi
{
"name": "projects/project-id/subscribers/subscriber-id",
"endpointUri": "https://myapp.com/webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
]
}Liệt kê người đăng ký
Sử dụng điểm cuối list
để truy xuất tất cả người đăng ký đã đăng ký cho dự án của bạn.
Yêu cầu
GET https://health.googleapis.com/v4/projects/project-id/subscribers
Phản hồi
{
"subscribers": [
{
"name": "projects/project-id/subscribers/subscriber-id",
"endpointUri": "https://myapp.com/webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
],
"endpointAuthorization": {
"authorizationTokenSet": true
}
}
],
"totalSize": 1
}Cập nhật người đăng ký
Sử dụng điểm cuối patch
để cập nhật người đăng ký trong dự án của bạn. Các trường có thể cập nhật là endpointUri, subscriberConfigs và endpointAuthorization.
Bạn cập nhật các trường bằng cách cung cấp tham số truy vấn updateMask và nội dung yêu cầu. updateMask phải chứa danh sách được phân tách bằng dấu phẩy gồm tên trường mà bạn muốn cập nhật, sử dụng kiểu viết lạc đà (viết liền và phân tách bằng chữ cái viết hoa) cho tên trường (ví dụ: endpointUri). Nội dung yêu cầu phải chứa một đối tượng Người đăng ký một phần có các giá trị mới cho các trường mà bạn muốn cập nhật. Chỉ các trường được chỉ định trong updateMask mới được cập nhật. Nếu bạn cung cấp các trường trong nội dung yêu cầu không có trong updateMask, thì các trường đó sẽ bị bỏ qua.
Nếu bạn cập nhật endpointUri hoặc endpointAuthorization, thì quá trình xác minh điểm cuối sẽ được thực hiện. Hãy xem phần Xác minh điểm cuối để biết thông tin chi tiết.
Khi cập nhật subscriberConfigs, hãy lưu ý rằng đây là thao tác thay thế hoàn toàn chứ không phải
hợp nhất. Nếu subscriberConfigs được đưa vào updateMask, thì tất cả cấu hình đã lưu trữ cho người đăng ký đó sẽ bị ghi đè bằng danh sách được cung cấp trong nội dung yêu cầu. Để thêm hoặc xoá cấu hình, bạn phải cung cấp toàn bộ tập hợp cấu hình. Nếu bạn đang cập nhật các trường khác và muốn giữ nguyên cấu hình hiện tại, hãy bỏ qua subscriberConfigs trong updateMask.
Yêu cầu
PATCH https://health.googleapis.com/v4/projects/project-id/subscribers/subscriber-id?updateMask=endpointUri
{
"endpointUri": "https://myapp.com/new-webhooks/health"
}Phản hồi
{
"name": "projects/project-id/subscribers/subscriber-id",
"endpointUri": "https://myapp.com/new-webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
]
}Xoá người đăng ký
Sử dụng điểm cuối delete
để xoá người đăng ký khỏi dự án của bạn. Sau khi bị xoá, người đăng ký sẽ không còn nhận được thông báo nữa.
Yêu cầu
DELETE https://health.googleapis.com/v4/projects/project-id/subscribers/subscriber-id
Phản hồi
Một nội dung phản hồi trống có trạng thái HTTP `200 OK` sẽ được trả về nếu quá trình xoá thành công.{}Xác minh điểm cuối
Để đảm bảo tính bảo mật và độ tin cậy của việc gửi thông báo, Google Health API sẽ thực hiện bắt tay xác minh hai bước bắt buộc bất cứ khi nào bạn tạo người đăng ký hoặc cập nhật cấu hình điểm cuối của người đăng ký đó (endpointUri hoặc endpointAuthorization). Quá trình này được thực hiện đồng bộ trong lệnh gọi API. Dịch vụ này sẽ gửi 2 yêu cầu POST tự động đến URI điểm cuối của bạn,
sử dụng Tác nhân người dùng Google-Health-API-Webhooks-Verifier, với nội dung JSON
{"type": "verification"}.
- Bắt tay được uỷ quyền: Yêu cầu đầu tiên được gửi kèm theo tiêu đề
Authorizationmà bạn đã định cấu hình. Máy chủ của bạn phải phản hồi bằng trạng thái200 OKhoặc201 Created. - Thử thách không được uỷ quyền: Yêu cầu thứ hai được gửi mà không có thông tin đăng nhập.
Máy chủ của bạn phải phản hồi bằng trạng thái
401 Unauthorizedhoặc403 Forbidden.
Quá trình bắt tay này xác nhận rằng điểm cuối của bạn đang hoạt động và thực thi chính sách bảo mật một cách chính xác. Nếu một trong hai bước không thành công, thì yêu cầu API sẽ không thành công với lỗi FAILED_PRECONDITION. Chỉ sau khi quá trình bắt tay này thành công, người đăng ký của bạn mới được lưu và kích hoạt để nhận thông báo về dữ liệu sức khoẻ.
Luân chuyển khoá
Nếu bạn cần luân chuyển khoá cho endpointAuthorization, hãy làm theo các bước sau:
- Định cấu hình điểm cuối để chấp nhận cả giá trị
endpointAuthorizationcũ và mới. - Cập nhật cấu hình người đăng ký bằng giá trị mới
endpointAuthorizationbằng cách sử dụng yêu cầupatchvới?updateMask=endpointAuthorization. - Định cấu hình điểm cuối để chỉ chấp nhận giá trị
endpointAuthorizationmới sau khi xác nhận bước 2 đã thành công.
Gói thuê bao của người dùng
Google Health API giúp bạn quản lý gói thuê bao của người dùng một cách hiệu quả, giảm nhu cầu đăng ký thủ công trong quá trình giới thiệu người dùng.
Gói thuê bao tự động
Bạn nên sử dụng gói thuê bao tự động. Để bật tính năng này, hãy đặt subscriptionCreatePolicy thành AUTOMATIC trong subscriberConfigs cho các loại dữ liệu cụ thể. dataTypes mà bạn chỉ định bằng chính sách AUTOMATIC là các loại dữ liệu giống nhau mà Google Health API gửi thông báo, miễn là sự đồng ý của người dùng cũng được cấp cho các loại dữ liệu đó.
Khi người dùng cấp quyền đồng ý cho ứng dụng đối với các phạm vi tương ứng với các loại dữ liệu có chính sách AUTOMATIC, Google Health API sẽ tự động theo dõi và gửi thông báo cho các loại dữ liệu là kết quả của giao điểm giữa các loại dữ liệu mà người dùng đồng ý và các loại dữ liệu cấu hình người đăng ký tự động cho người dùng đó. Sau đó, thông báo sẽ được gửi đến điểm cuối của bạn bất cứ khi nào người dùng đó tạo dữ liệu mới cho các loại dữ liệu đó. Điều này áp dụng cho những người dùng cấp quyền đồng ý trước hoặc sau khi bạn tạo người đăng ký. Thông báo không được điền lại cho dữ liệu được tạo trước khi người đăng ký được tạo.
Nếu người dùng thu hồi quyền đồng ý, thì thông báo cho các loại dữ liệu tương ứng sẽ dừng. Gói thuê bao tự động do Google quản lý và không thể liệt kê hoặc xoá riêng lẻ; các gói này chỉ bị xoá khi người đăng ký mẹ bị xoá.
Gói thuê bao thủ công
Nếu người đăng ký của bạn được định cấu hình với subscription_create_policy THỦ CÔNG cho các loại dữ liệu cụ thể, thì bạn phải tạo và quản lý gói thuê bao một cách rõ ràng cho từng người dùng. Gói thuê bao liên kết một người dùng cụ thể với điểm cuối của người đăng ký cho một tập hợp các loại dữ liệu được xác định. Nhà phát triển có thể sử dụng các API cụ thể để:
- Tạo gói thuê bao (thủ công) cho mỗi
healthUserId– Tạo gói thuê bao mới cho một người dùng cụ thể. Phương thức này yêu cầu người đăng ký phải đặtSubscriptionCreatePolicythànhMANUALcho các loại dữ liệu được yêu cầu. - Cập nhật gói thuê bao (thủ công) – Cập nhật các loại dữ liệu cho gói thuê bao hiện có của người dùng.
- Xoá gói thuê bao (thủ công) – Xoá gói thuê bao cụ thể của người dùng. Sau khi bị xoá, điểm cuối của người đăng ký sẽ không còn nhận được thông báo cho người dùng này đối với các loại dữ liệu được liên kết nữa.
- Liệt kê gói thuê bao (thủ công) – Liệt kê tất cả gói thuê bao đang hoạt động cho một người đăng ký nhất định. Bạn có thể lọc kết quả theo người dùng hoặc loại dữ liệu.
Dịch vụ thông báo
Khi dữ liệu của người dùng thay đổi đối với loại dữ liệu đã đăng ký, Google Health API sẽ gửi yêu cầu POST qua HTTPS đến URL điểm cuối của người đăng ký.
Định dạng thông báo
Tải trọng thông báo là đối tượng JSON chứa thông tin chi tiết về thay đổi dữ liệu. Thông tin này bao gồm mã nhận dạng người dùng, loại dữ liệu và khoảng thời gian mà bạn có thể dùng để truy vấn dữ liệu đã cập nhật.
{
"data": {
"version": "1",
"clientProvidedSubscriptionName": "subscription-name",
"healthUserId": "health-user-id",
"operation": "UPSERT",
"dataType": "steps",
"intervals": [
{
"physicalTimeInterval": {
"startTime": "2026-03-08T01:29:00Z",
"endTime": "2026-03-08T01:34:00Z"
},
"civilDateTimeInterval": {
"startDateTime": {
"date": {
"year": 2026,
"month": 3,
"day": 7
},
"time": {
"hours": 17,
"minutes": 29
}
},
"endDateTime": {
"date": {
"year": 2026,
"month": 3,
"day": 7
},
"time": {
"hours": 17,
"minutes": 34
}
}
},
"civilIso8601TimeInterval": {
"startTime": "2026-03-07T17:29:00",
"endTime": "2026-03-07T17:34:00"
}
}
]
}
}
Trường operation cho biết loại thay đổi đã kích hoạt thông báo:
UPSERT: Được gửi cho mọi thao tác thêm hoặc sửa đổi dữ liệu.DELETE: Được gửi khi người dùng xoá dữ liệu.
Bạn nên tạo logic xử lý thông báo bất biến, đặc biệt là đối với các thao tác UPSERT, vì việc thử lại có thể khiến thông báo trùng lặp được gửi.
Trường clientProvidedSubscriptionName là giá trị nhận dạng duy nhất. Đối với các gói thuê bao có chính sách MANUAL, trường này chứa tên gói thuê bao liên tục do nhà phát triển cung cấp được chỉ định khi gói thuê bao được tạo.
Điều này cung cấp mã nhận dạng ổn định để quản lý gói thuê bao thủ công. Đối với các gói thuê bao được tạo bằng chính sách AUTOMATIC, Google Health API sẽ tự động tạo và chỉ định giá trị nhận dạng duy nhất (UUID ngẫu nhiên) cho trường này đối với mỗi thông báo. Việc đưa clientProvidedSubscriptionName vào cả chính sách thủ công và tự động sẽ đảm bảo định dạng tải trọng thông báo nhất quán trên tất cả các loại gói thuê bao.
healthUserId là giá trị nhận dạng Google Health API cho người dùng có dữ liệu đã thay đổi. Nếu ứng dụng của bạn hỗ trợ nhiều người dùng, thì bạn có thể nhận thông báo cho bất kỳ người dùng nào đã cấp quyền đồng ý cho ứng dụng của bạn. Khi bạn nhận được thông báo, hãy sử dụng healthUserId để xác định dữ liệu của người dùng nào đã thay đổi, để bạn có thể sử dụng thông tin đăng nhập OAuth của họ để truy vấn dữ liệu của họ.
Để liên kết thông tin đăng nhập OAuth của người dùng với healthUserId, hãy sử dụng điểm cuối
getIdentity. Gọi điểm cuối này bằng thông tin đăng nhập của người dùng trong quá trình giới thiệu người dùng để truy xuất healthUserId của họ và lưu trữ mối liên kết này. Mối liên kết này không thay đổi theo thời gian, vì vậy, bạn có thể lưu vào bộ nhớ đệm vô thời hạn. Để biết ví dụ, hãy xem phần
Nhận mã nhận dạng người dùng. Điều này cho phép bạn chọn thông tin đăng nhập chính xác của người dùng khi truy vấn dữ liệu dựa trên healthUserId trong thông báo.
Phản hồi thông báo
Máy chủ của bạn phải phản hồi thông báo ngay lập tức bằng mã trạng thái HTTP 204 No Content. Để tránh hết thời gian chờ, hãy xử lý tải trọng thông báo không đồng bộ sau khi gửi phản hồi. Nếu Google Health API nhận được bất kỳ mã trạng thái nào khác hoặc yêu cầu hết thời gian chờ, thì API này sẽ thử gửi lại thông báo sau.
Ví dụ về Node.js (Express):
app.post('/webhook-receiver', (req, res) => {
// 1. Immediately acknowledge the notification
res.status(204).send();
// 2. Process the data asynchronously in the background
const notification = req.body;
setImmediate(() => {
console.log(`Update for user ${notification.data.healthUserId} of type ${notification.data.dataType}`);
// Trigger your data retrieval logic here
});
});
Xác minh chữ ký
Để đảm bảo tính xác thực của thông báo Webhook, tải trọng JSON thô của
mọi thông báo webhook gửi đi đều được ký bằng khoá riêng tư bằng PublicKeySign của Tink,
cung cấp chữ ký được mã hoá Base64 trong tiêu đề HTTP GOOGLE-HEALTH-API-SIGNATURE trong yêu cầu. Các khoá ký này sẽ tự động luân chuyển sau mỗi 30 ngày và bộ khoá công khai chính thức tương ứng sẽ được phân phối dưới dạng tệp JSON tại URL vĩnh viễn https://www.gstatic.com/googlehealthapi/webhooks/webhooks_public_keyset.json.
Cách xác minh chữ ký
Sử dụng Tink (Nên dùng): Nhà phát triển có thể xác minh chữ ký bằng nguyên hàm
PublicKeyVerify
của Tink. Tìm nạp bộ khoá công khai từ URL vĩnh viễn, khởi tạo nguyên hàm PublicKeyVerify bằng bộ khoá và xác minh tiêu đề GOOGLE-HEALTH-API-SIGNATURE đã giải mã dựa trên tải trọng JSON webhook thô.
Xác minh thủ công (Không dùng Tink): Nếu chọn không sử dụng Tink, nhà phát triển có thể xác minh chữ ký theo cách thủ công bằng cách làm theo các bước sau:
- Giải mã Base64 tiêu đề
GOOGLE-HEALTH-API-SIGNATUREđể tách tiền tố Tink 5 byte (chứa tiền tố phiên bản 1 byte và keyId 4 byte) khỏi chữ ký được mã hoá DER thực tế. - Tìm nạp bộ khoá JSON từ https://www.gstatic.com/googlehealthapi/webhooks/webhooks_public_keyset.json.
- Tìm khoá khớp với keyId đã phân tích cú pháp và giải mã Base64 trường giá trị của khoá đó, chứa Bộ đệm giao thức EcdsaPublicKey được tuần tự hoá.
- Trích xuất toạ độ x và y theo thứ tự byte lớn (thẻ Protobuf 3 và 4) từ tải trọng nhị phân này.
- Khởi tạo khoá công khai ECDSA P-256 tiêu chuẩn trong thư viện mã hoá tích hợp bằng cách sử dụng toạ độ x và y đã trích xuất.
- Xác minh tải trọng JSON webhook thô dựa trên chữ ký DER đã trích xuất bằng thuật toán SHA-256.
Trạng thái và khôi phục người đăng ký
Nếu điểm cuối của người đăng ký không hoạt động hoặc trả về mã trạng thái lỗi (bất kỳ mã nào khác 204), thì Google Health API sẽ lưu trữ các thông báo đang chờ xử lý trong tối đa 7 ngày và thử gửi lại bằng cách tăng dần thời gian chờ.
Sau khi điểm cuối của bạn hoạt động trở lại và phản hồi bằng 204, API sẽ tự động gửi các thông báo tồn đọng đã lưu trữ. Các thông báo cũ hơn 7 ngày sẽ bị loại bỏ và không thể khôi phục.
Lỗi thường gặp
| Mã lỗi | Nhắn tin | Mô tả | Nội dung đề xuất |
|---|---|---|---|
| 400 Yêu cầu không hợp lệ | Số dự án không hợp lệ trong tên tài nguyên | Khi xoá hoặc cập nhật người đăng ký bằng mã dự án Google Cloud trong URL yêu cầu thay vì số dự án. Điều này áp dụng cho các gói thuê bao webhook sử dụng điểm cuối projects.subscribers. |
Sử dụng số dự án trên đám mây của Google trong URL yêu cầu, không phải mã dự án. |
| 403 Bị cấm | Phương thức gọi không có quyền | Khi tạo hoặc liệt kê người đăng ký bằng mã dự án Google Cloud trong URL yêu cầu thay vì số dự án. Điều này áp dụng cho các gói thuê bao webhook sử dụng điểm cuối projects.subscribers. |
Sử dụng số dự án trên đám mây của Google trong URL yêu cầu, không phải mã dự án. |