There is no way to eliminate the consent screen for good.
Access to services through OAuth2 is done based on an access token that keeps getting updated without you knowing.
This is happening because when the consent screen is shown, we obtain a refresh token. No consent screen no refresh token. It is the refresh token that is used when needing a new access token.
The amount of time a refresh token lasts depends on the scopes being used, but it is anywhere between a few hours to a few days.
That being said, it is curious that you get the consent screen every single time. This should not be happening.
In the upcoming release of the GSuite package, which includes Docs functionality, we’ve worked to better manage the lifetime of stored refresh tokens, and i think you will notice a big decrease in consent screens being shown.
Still, the consent screen will be shown anytime your refresh token is expired.