Create a smart home Action

Smart home Actions are structured differently than traditional Actions. The
process for how users trigger actions and the actions' conversations are handled
for you; all you need to do is handle smart home intents on your service.

Set up an OAuth 2.0 server

Make sure that you have a public OAuth 2.0 server for authenticating users.

Authentication allows you to link your users' Google accounts with user
accounts in your authentication system. This allows you to identifiy your users
when you receive a smart home intent on your fulfillment. Google smart home
only supports OAuth with an authorization code flow.

For smart home, you need to use OAuth with an authorization code flow, which required you to have
two endpoints, the authorization and token exchange endpoints. See
account linking with OAuth.

When you have authenticated a user, the user's third-party OAuth 2 access token
is sent in the Authorization header when smart home intents are sent to your
fulfillment. All users have to perform account linking, because device
information is sent to the Assistant with the action.devices.SYNC
intent, which requires account linking.

Your smart home Action is expected to support multiple Google users connecting
to the same user account (for example, when users give access to other users in
their household). If your service can't support multiple user connections, it
should provide errors at account linking time.