A bit of background
I'm working on an Installed Application project that handles possibly very many Google APIs and their scopes for each user. One major issue I'm having is when a user selects a large number of scopes to authenticate, they are supplied in the URL as parameters and cut off. For example, the url might terminate as such (line breaks for readability):
...%20https://www.googleapis.com/auth/admin.directory.userschema.
readonly%20https://www.googleapis.com/auth/admin.reports.audit.readon
ly%20https://www.googleapis.com/auth/admin.rep
This is a result of wanting my users to only have to authenticate once, but I realized that it wouldn't be too terrible to have to do it once per API they're using. So I broke it up, but then found that after authenticating again it would overwrite their access. So, I looked in to the Incremental Authorization mentioned on the docs, only to find out that no it won't work for Installed Apps and there is apparently no intention for it to do so:
I think the problem here is that you are using the installed application OAuth2 flow, which contrary to the documentation doesn't support the include_granted_scopes parameter.
Ok, so at this point it sounds like I have two options. The first and obvious option is to maintain a separate token for each API. However, before I commit myself to that route I looked in to how the Python-based Google Apps Manager handles it since upon authenticating I don't see any of the scopes in the URL, so I assume it's being sent as a POST body.
Main Question
Using the Google API Client Library for .NET for an Installed App, is it possible to authenticate without supplying the scopes as URL parameters? I've tried using PowerShell and Invoke-RestMethod to try and get something like a POST request working, but have not had any luck.