Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Google

Provides the email capability via Gmail’s REST API: list, search, read, send, and reply.

Folders and labels

  • email_list_folders discovers available folders and returns their IDs and names.
  • Pass a returned ID as optional folder_id to email_list or email_search.
  • IDs are opaque and scoped to the connected account. Discover them again when switching accounts.
  • When paging, pass next_page_token back as page_token and keep the same folder and search query.
  • Gmail folders are labels: one message can belong to several labels.
  • Selecting Spam or Trash includes messages in that label. Unscoped requests keep Gmail’s default exclusions.
  • Discovery and filtering use the existing gmail.readonly permission.

Requirements

RequirementNotes
Gmail API + OAuth consent screenRequests gmail.readonly, gmail.send, userinfo.email. The first two are restricted scopes — until the app is verified, only accounts added as test users can grant them.
OAuth 2.0 client, type iOSOne per Bundle ID (dev and production need separate clients). Redirect URI isn’t configurable — Google fixes it to the reversed client ID, which Eigin computes automatically. Only set up for iOS today; expanding Eigin to another platform will need its own OAuth client, since Google’s client types are platform-specific.
EIGIN_GOOGLE_OAUTH_CLIENT_ID_STAGING / _PRODUCTIONCommitted in config/app.toml; a PKCE client id is public by design. Wired into the app via EiginGoogleOAuthClientID in Info.plist. Connecting Google fails fast with a clear error if this is missing.
Setup processManual only, through the Google Cloud console — Google has no API for creating this kind of OAuth client, so it can’t be codified.

Google’s consent screen lets scopes be approved individually. Denying one still connects the account, but Eigin only exposes tools for what was actually granted — the connection detail screen shows which.

API references