google_api_home_graph v0.2.0 GoogleApi.HomeGraph.V1.Api.AgentUsers View Source

API calls for all endpoints tagged AgentUsers.

Link to this section Summary

Functions

Unlinks an agent user from Google. As a result, all data related to this user will be deleted.

Link to this section Functions

Link to this function

homegraph_agent_users_delete(connection, agent_users_id, optional_params \\ [], opts \\ [])

View Source
homegraph_agent_users_delete(
  Tesla.Env.client(),
  String.t(),
  keyword(),
  keyword()
) :: {:ok, GoogleApi.HomeGraph.V1.Model.Empty.t()} | {:error, Tesla.Env.t()}

Unlinks an agent user from Google. As a result, all data related to this user will be deleted.

Here is how the agent user is created in Google:

  1. When a user opens their Google Home App, they can begin linking a 3p partner.
  2. User is guided through the OAuth process.
  3. After entering the 3p credentials, Google gets the 3p OAuth token and uses it to make a Sync call to the 3p partner and gets back all of the user's data, including agent_user_id and devices.
  4. Google creates the agent user and stores a mapping from the agent_user_id -> Google ID mapping. Google also stores all of the user's devices under that Google ID.

The mapping from agent_user_id to Google ID is many to many, since one Google user can have multiple 3p accounts, and multiple Google users can map to one agent_user_id (e.g., a husband and wife share one Nest account username/password).

The third-party user's identity is passed in as agent_user_id. The agent is identified by the JWT signed by the partner's service account.

Note: Special characters (except "/") in agent_user_id must be URL-encoded.

Parameters

  • connection (type: GoogleApi.HomeGraph.V1.Connection.t) - Connection to server
  • agent_users_id (type: String.t) - Part of agentUserId. Required. Third-party user ID.
  • optional_params (type: keyword()) - Optional parameters

    • :"$.xgafv" (type: String.t) - V1 error format.
    • :access_token (type: String.t) - OAuth access token.
    • :alt (type: String.t) - Data format for response.
    • :callback (type: String.t) - JSONP
    • :fields (type: String.t) - Selector specifying which fields to include in a partial response.
    • :key (type: String.t) - API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
    • :oauth_token (type: String.t) - OAuth 2.0 token for the current user.
    • :prettyPrint (type: boolean()) - Returns response with indentations and line breaks.
    • :quotaUser (type: String.t) - Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
    • :uploadType (type: String.t) - Legacy upload protocol for media (e.g. "media", "multipart").
    • :upload_protocol (type: String.t) - Upload protocol for media (e.g. "raw", "multipart").
    • :requestId (type: String.t) - Request ID used for debugging.
  • opts (type: keyword()) - Call options

Returns

  • {:ok, %GoogleApi.HomeGraph.V1.Model.Empty{}} on success
  • {:error, info} on failure