Slack slash command to create a GMeet meeting
- Create a GCP project.
- Enable the Calendar API.
- Create an OAuth client id for a web application.
- Set the redirect URL to
https://slashmeet.slackapps.example.com/0_0_1/google-oauth-redirect
(where example.com is your custom domain name). - Save the client id and client secret to AWS Secrets Manager
- Create a Slack app using the file manifests/slack_manifest.json as a basis.
- Add a Slash Command with the Request URL set to
https://slashmeet.slackapps.example.com/0_0_1/meet
. - Check the OAuth scopes are as per the manifest.
- Copy the Bot User OAuth Token to AWS Secrets Manager.
- Copy the Signing Secret to AWS Secrets Manager.
- Set the
CUSTOM_DOMAIN_NAME
andLAMBDA_VERSION
in the cdk/.env file to the same values as step 4 (iehttps://slashmeet.${CUSTOM_DOMAIN_NAME}/${LAMBDA_VERSION}/google-oauth-redirect
). - Create a R53 hosted zone for the subdomain
slackapps.example.com
. Update your root DNS with the NS records to do the subdomain delegation. - Add the custom domain name and R53 zone id to the cdk/.env file.
- The secret in AWS Secrets Manager should be called
SlashMeet
and should look like the file slashmeet-secret.json. - The cdk/.env file should look like the file cdk/env.template
- Create an app registration in Azure Portal/MS Entra using the file manifests/aad_manifest.json as a basis. Copy the relevant data to AWS Secrets Manager.
There is a simple .gitlab-ci.yml file provided. It uses OIDC tokens to get temporary credentials. The pipeline needs the following variables:
- GITLAB_ROLE_ARN - the AWS IAM role for running the pipeline. See https://docs.gitlab.com/ee/ci/cloud_services/aws/index.html
- AWS_DEFAULT_REGION - the AWS deployment region. May be overridden in the cdk code.
- LAMBDA_VERSION - see above
- R53_ZONE_ID - see above
- CUSTOM_DOMAIN_NAME - see above