async def METHOD_NAME(self) -> str:
    now = time.time()
    if self._access_token is None or (self._expires_at is not None and now > self._expires_at):
        self._access_token = await self.get_access_token()
        self._expires_at = now + (self._access_token.expires_on - now) // 2   # type: ignore
    assert self._access_token
    return self._access_token.token