Google Health API là một giải pháp toàn diện được xây dựng từ đầu, cung cấp cho nhà phát triển quyền truy cập mạnh mẽ vào nhiều loại dữ liệu sức khoẻ của người dùng đã đồng ý và nhiều loại dữ liệu đa dạng. Google Health API sử dụng một bảng điều khiển mới để đăng ký các ứng dụng của bạn, Google OAuth 2.0, các loại dữ liệu mới, giản đồ điểm cuối mới và định dạng phản hồi mới.
Hướng dẫn này được thiết kế để giúp nhà phát triển di chuyển các ứng dụng API Fitbit Web hiện có sang Google Health API mới. Tài liệu này đưa ra các đề xuất để đảm bảo quá trình di chuyển diễn ra suôn sẻ trong khi vẫn giữ chân được người dùng.
Tại sao bạn nên di chuyển?
Đây không chỉ là một bản cập nhật mà còn là một bước đi chiến lược để đảm bảo ứng dụng của bạn an toàn và sẵn sàng cho những tiến bộ trong tương lai về công nghệ sức khoẻ. Sau đây là một số lợi ích khi sử dụng Google Health API:
- Quyền truy cập vào dữ liệu toàn diện: Có được quyền truy cập mạnh mẽ vào nhiều loại dữ liệu sức khoẻ của người dùng đã đồng ý và nhiều loại dữ liệu đa dạng.
- Bảo mật nâng cao: Tuân thủ các phương pháp bảo mật hay nhất của Google, phù hợp với các tiêu chuẩn của Google về bảo mật, quyền riêng tư và danh tính.
- Tính nhất quán: Loại bỏ sự không nhất quán cũ trong định dạng dữ liệu, múi giờ, đơn vị đo lường và việc xử lý lỗi để mang lại trải nghiệm trực quan hơn cho nhà phát triển.
- Khả năng mở rộng và đảm bảo cho tương lai: Được thiết kế để mở rộng quy mô nhằm đáp ứng nhu cầu trong tương lai và hỗ trợ các giao thức hiện đại như gRPC.
Việc chuyển đổi từ Fitbit Web API sang Google Health API không chỉ liên quan đến các sửa đổi về kỹ thuật. Do chuyển sang thư viện OAuth mới, nên không thể chuyển các mã truy cập và mã làm mới hiện có, yêu cầu người dùng phải đồng ý lại với chế độ tích hợp mới của bạn.
Hỗ trợ cả hai phương thức đăng nhập
Vì Fitbit Web API và Google Health API sử dụng các hệ thống khác nhau để xử lý thông tin đăng nhập của người dùng, nên trong khi Fitbit Web API vẫn hoạt động, ứng dụng của bạn sẽ tạm thời cần hỗ trợ cả hai phương thức cùng một lúc.
Thay vì ứng dụng của bạn yêu cầu dữ liệu trực tiếp, hãy triển khai một lớp quyết định có nên giao tiếp với Fitbit Web API hay Google Health API cho một người dùng cụ thể hay không, để phần còn lại của ứng dụng không cần lo lắng về các chi tiết.
Cập nhật cơ sở dữ liệu người dùng để thêm một cờ (ví dụ: oauth_type) nhằm xác định hệ thống đăng nhập mà họ đang sử dụng.
- Đối với người dùng mới: Tự động thiết lập cho họ bằng Google Health API mới (
oauth_type: google). - Đối với người dùng hiện tại: Giữ họ trên API Fitbit Web cho đến khi họ cập nhật sự đồng ý (
oauth_type: fitbit).
Để tránh làm gián đoạn trải nghiệm người dùng, bạn không nên bắt buộc mọi người đăng xuất rồi đăng nhập lại. Thay vào đó:
- Khi một người dùng vẫn kết nối với Fitbit Web API tương tác với ứng dụng của bạn, hãy cho họ thấy một thông báo thân thiện khuyến khích họ cập nhật kết nối.
- Khi người dùng chấp nhận hành động cập nhật, hãy kích hoạt quy trình đăng nhập Google Health ngay lập tức.
- Sau khi đăng nhập bằng Google thành công, hãy lưu thông tin đăng nhập mới bằng Google vào hồ sơ của người dùng và chuyển cờ
oauth_typecủa họ từfitbitsanggoogle. Nếu chế độ thiết lập của bạn cho phép, hãy đăng xuất họ khỏi hệ thống Fitbit cũ theo cách lập trình bằng cách thu hồi mã thông báo của họ để mọi thứ gọn gàng và an toàn.
Đảm bảo tính liên tục của dữ liệu
Khi chuyển đổi một quy trình tích hợp từ API Fitbit Web cũ sang Google Health API, các ứng dụng của nhà phát triển phải tính đến sự thay đổi trong cấu trúc nhận dạng người dùng.
API Fitbit Web cũ xác định tài khoản bằng một chuỗi gồm 6 ký tự chữ và số (chẳng hạn như A1B2C3), trong khi API Google Health sử dụng healthUserId có định dạng là một chuỗi gồm tối đa 63 chữ số và ký tự.
Để thu hẹp khoảng cách này mà không làm mất ngữ cảnh người dùng, nhà phát triển có thể truy vấn điểm cuối getIdentity để lấy mã nhận dạng người dùng Fitbit và Health.
Điểm cuối này trả về một tải trọng chứa cả legacyUserId và healthUserId mới, cho phép các ứng dụng tạo động một mối liên kết giữa các bản ghi hiện có và hệ thống tài khoản mới.
Bổ sung dữ liệu cũ
Nếu người dùng không xác thực với các điểm cuối Google Health API mới trước khi các điểm cuối cũ bị tắt, thì dữ liệu của họ vẫn sẽ có sẵn miễn là họ tiếp tục đồng bộ hoá thiết bị với ứng dụng Google Health. Tuy nhiên, bạn có thể bị thiếu dữ liệu của người dùng này.
Để điền lại dữ liệu, sau khi người dùng xác thực lại vào các điểm cuối mới, bạn có thể sử dụng Google Health API của chúng tôi để điền lại dữ liệu cũ của họ. Hãy xem phần Truy vấn dữ liệu cũ để biết hướng dẫn.
Trao đổi thông tin và thời gian
Để giúp người dùng chuyển từ OAuth Fitbit hiện tại sang OAuth Google mới, hãy làm theo các phương pháp hay nhất sau đây.
Giao tiếp dựa trên giá trị
Đừng bắt đầu bằng câu "Chúng tôi đã cập nhật API", hãy bắt đầu bằng những lợi ích khi tích hợp dữ liệu Google Health vào ứng dụng của bạn, nhưng hãy đảm bảo họ biết rằng họ cần xác thực lại nếu muốn dữ liệu của mình được đồng bộ hoá:
- Giải thích rõ ràng những tính năng có trong ứng dụng của bạn được hỗ trợ bởi hoạt động tích hợp và điều chỉnh thông báo cho phù hợp với cách người dùng hưởng lợi từ những tính năng đó.
- Tập trung vào các tính năng của bạn và cung cấp các trường hợp sử dụng thay vì thông tin chi tiết về việc triển khai kỹ thuật.
- Không nói: "Bạn sẽ không thể kết nối với Fitbit API."
- Nên nói: "Để tiếp tục xem các bài tập chi tiết có dữ liệu tần số tim, hãy đồng ý lại với Google Health API."
Thời điểm thông báo cho người dùng
Trong mọi thông tin liên lạc với người dùng, hãy tuân thủ nguyên tắc sử dụng thương hiệu Google Health và sử dụng biểu ngữ, thẻ hoặc cảnh báo có thể đóng.
- Đừng kích hoạt màn hình xin cấp lại sự đồng ý khi người dùng đang tập luyện hoặc tự ghi nhật ký một hoạt động nào đó.
- Chỉ bắt buộc người dùng đồng ý lại sau vài tuần cảnh báo, trùng với thời hạn ngừng hoạt động chính thức của Fitbit Web API.
- Nếu người dùng chưa đồng ý lại sau thời hạn cuối cùng, hãy cung cấp một quy trình khôi phục suôn sẻ. Cung cấp một thông báo trợ giúp trong biểu ngữ, thẻ hoặc chú thích để giúp họ hiểu được lý do dữ liệu bị thiếu và cách khắc phục.