Simple utility wrapped in Docker image for retrieving the OAuth 2.0 tokens for access to Google Assistant Service.
Bugs and questions related to the source code and Docker image can be reported at Github Issues in the ismarslomic/google-assistant-oauth repo.
In order to access the Google Assistant Service you need to retrieve access and refresh tokens by using Google OAuth2 implementation, this is explained in Google Authorization and Authentication documentation .
This utility simplifies going through the OAuth2 flow and was created in the context of implementing embedded Google Assistant for broadcasting message to Google Assistant enabled speakers, see ismarslomic/google-assistant-broadcast .
- docker - you need to have Docker installed on your machine, read Get Docker for more information.
- Google OAuth 2.0 Client ID - in order to authenticate yourself and get access to your Google
Assistant.
- Follow steps 1-5 in Configure an Actions Console project
- Make sure that you choose "Device registration" when creating new project in Actions Console
- !Important! Download the OAuth Client file from GCP Console / API & Services / Credentials page (not from Google Actions Console), read solution on issue #7. Make also sure that the
Application type
of the OAuth Client isDesktop
- Rename the downloaded file from
client_secret_****.apps.googleusercontent.com.json
toclient_secret.json
Replace /home/pi/config
with full path to the folder where your client_secret.json
file is
located.
Warning To avoid write permission issues inside container, please use a folder with ownership of the OS user you are logged in with. Typically
/home/pi
on RPI or/home/ubuntu
on Ubuntu.
When docker container is terminated and the OAuth2 flow finished, you will find tokens.json
file produced in the same folder.
docker run --rm \
-p 3005:3005 \
-v /home/pi/config:/usr/src/config \
ismarslomic/google-assistant-oauth:latest
Click on the URL provided in the console output from the Docker container.
{
"installed": {
"client_id": "****.apps.googleusercontent.com",
"project_id": "you-project-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "****",
"redirect_uris": [
"http://localhost"
]
}
}