How to login to Google API with Service Account in C# – Invalid Credentials

It appears that the GoogleAnalytics cannot consume a generic GoogleCredential and interpret it as a ServiceAccountCredential (even though it is acknowledged, interally, that it is actually of that type). Thus you have to create a ServiceAccountCredential the hard way. It’s also unfortunate that GoogleCredential does not expose the various properties of the credential, so I … Read more

How do client-side JS libraries for OAuth2 maintain secure authentication?

There’re flows in OAuth2 that don’t require a secret (e.g. implicit flow is typically used for JS based clients, SPAs, etc). Not all providers support this flow though, so in those situations you need a server side component that negotiates that for you and then handles the interactions with your front-end/device. In any case, you … Read more

OAuth2.0 token strange behaviour (Invalid Credentials 401)

Per the Google API docs on errors & error codes: https://developers.google.com/drive/handle-errors#401_invalid_credentials 401: Invalid Credentials Invalid authorization header. The access token you’re using is either expired or invalid. error: { errors: [ { “domain”: “global”, “reason”: “authError”, “message”: “Invalid Credentials”, “locationType”: “header”, “location”: “Authorization”, } ], “code”: 401, “message”: “Invalid Credentials” } } This matches your … Read more

Error: invalid_request device_id and device_name are required for private IP

An alternative to editing a hosts file is to use the “Magic DNS” service https://nip.io/ nip.io is a magic domain name that provides wildcard DNS for any IP address. Say your LAN IP address is 10.0.0.1: 10.0.0.1.nip.io resolves to 10.0.0.1 (dot syntax) 192-168-1-250.nip.io resolves to 192.168.1.250 (dash syntax) 0a000803.nip.io resolves to 10.0.8.3 (hex syntax) foo.bar.10.0.0.1.nip.io … Read more