Developing a GNOME Shell Extension for Dexcom BG Monitor Without Using pydexcom Library

Hi everyone,

I have previously developed a software called ikizCom that utilizes the pydexcom library to retrieve blood glucose (BG) values from Dexcom Share using only a username and password. Now, I aim to develop a GNOME Shell extension Dexcom that achieves similar functionality but without relying on the pydexcom library.

Specifically, I want to:

  • Retrieve BG Values Using Only Username and Password: Access blood glucose data directly from Dexcom Share by authenticating with just the username and password, similar to how pydexcom operates.
  • Avoid Using the Complex Dexcom API: I prefer not to use the official Dexcom API that requires OAuth authentication and complex setup, as documented here.
  • Develop the Extension in GJS: Implement this functionality in JavaScript (GJS) within a GNOME Shell extension to display BG values in the top panel.

Challenges I’m Facing:

  • Implementing Authentication Without pydexcom: Replicating the authentication mechanism used by pydexcom in GJS without using the library itself.
  • Handling HTTP Requests in GJS: Making HTTP requests and managing sessions in GJS, especially for authenticating and maintaining a connection to retrieve BG data periodically.
  • Understanding Dexcom Share Protocol: Without detailed documentation on the Dexcom Share endpoints used by pydexcom (e.g., https://uam2.dexcom.eu/identity/login), it’s challenging to implement the necessary requests.

Questions:

  1. Has anyone developed a GNOME Shell extension or GJS application that interacts with Dexcom Share or similar services using direct username and password authentication?
  2. What is the best approach to implement such authentication and data retrieval in GJS without using existing Python libraries like pydexcom?
  3. Are there any resources or documentation available on the Dexcom Share endpoints (not the official Dexcom API) that could assist in implementing this functionality?

Any guidance, code examples, or references to relevant documentation would be greatly appreciated.

Kind regards

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.