Hugh Google API Access (hugh-ai@ubiworks.ca)

State

PARTIALLY ACTIVE — Hugh has Google API access for hugh-ai@ubiworks.ca via OAuth refresh token (as of 2026-06-25). Gmail (read+send), Google Drive, GA4 all confirmed working. Calendar is READ-ONLY — missing calendar.events scope, cannot create events. Needs Liam to reauthorize with calendar write scope. [Source: Hugh session f9b3e18a, 2026-06-25; Hugh session 1a6587af, 2026-06-25]

Scopes

  • Gmail (read + send) ✅
  • Google Drive ✅
  • Google Docs ✅
  • Google Calendar (read only) ⚠️ — missing calendar.events (write) scope
  • Contacts (read) ✅
  • GA4 (Google Analytics) ✅

How It Was Set Up

Liam Wilkinson completed a two-attempt OAuth flow on 2026-04-23 via agent-hugh Slack channel. Hugh ran a local OAuth server on port 8765. First code expired; second code (submitted ~08:10 PDT) was captured successfully. Tokens saved to Hugh’s credential store. [Source: Slack session, 2026-04-23]

Access Account

Known Issues

  • 2026-04-28 | Multiple heartbeat sessions reported invalid_client error when trying to exchange refresh token. This may indicate the client secret in google-oauth-client.json was rotated or revoked. When using the correct client_id/secret from google-oauth-hugh-ai.json directly, the token exchange succeeds. [Source: Sessions 47accf13, 30b5c817, 2026-04-28]
  • Root cause suspicion: Some sessions used wrong credentials file (/Users/OpenClaw/.openclaw/credentials/google-oauth-client.json instead of the Hugh-specific one). Working path: /Users/OpenClaw/.openclaw/workspaces/hugh/.secrets/google-oauth-hugh-ai.json

Timeline

  • 2026-04-23 | OAuth completed by Liam. Hugh confirmed access to Gmail, Drive, Docs, Calendar. [Source: Slack session dcebed40, 2026-04-23]
  • 2026-04-28 | Token exchange worked in session 6cfe0afc (using correct credentials file). Multiple other sessions failed with invalid_client when using wrong credentials. [Source: Sessions 6cfe0afc, 47accf13, 2026-04-28]
  • 2026-06-03 | RECURRENCE of invalid_client — client secret in credentials file (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, GCP project 699275090078, OAuth client 699275090078-vndn3cups81hnhcvi0psklnkm13aaf0p) is being rejected by Google. Refresh token also expired separately. Confirmed across two sessions. Blocked from writing week-ending-May-31 social metrics to Google Sheet despite having all data pulled. Action needed: Liam to grab current Client Secret from GCP Console → Credentials, paste to Hugh, then complete a fresh OAuth grant. [Source: Hugh sessions 0d20f5ed, 837457a4, 2026-06-03]
  • 2026-06-09 | .secrets/google-oauth-hugh-ai.json was overwritten at ~13:33 PDT by an earlier Hugh session that conflated the Google OAuth credentials file with the Notion API token (ntn_...). The file was restored to proper Google OAuth JSON shape using the (still-revoked) refresh token from /Users/OpenClaw/.openclaw/credentials/google-token.json. The misfiled Notion token was backed up at …json.misfiled-notion-token.bak. Both Google refresh tokens still return invalid_grant: Token has been expired or revoked. Gmail/Calendar/Drive remain blocked. [Source: Hugh heartbeat session ca6fd38a + memory 2026-06-09.md, 2026-06-09]
  • 2026-06-09 (evening) | The Notion SES Scrumban board shows the “Reauthorize Hugh on Google” card as Complete (Recent) — but this is NOT reflected in credentials on disk. Liam marked it complete; actual re-auth has not happened yet. Follow-up needed. [Source: Hugh heartbeat session 0fc5659c, 2026-06-09]

Updated State (2026-06-09)

BLOCKED — Both Google refresh tokens revoked as of at least 2026-06-03 (persisted through 2026-06-09). Additionally, the credentials file was accidentally overwritten with Notion API token during a Jun 9 session (now restored). Gmail/Calendar/Drive blocked until actual re-auth performed. Notion SES card “Reauthorize Hugh on Google” was marked Complete by Liam but actual re-auth has not happened on-disk.

Timeline additions (2026-06-25)

  • 2026-06-25 | Ken asked Hugh to verify Google auth status. Hugh confirmed all green: Gmail ✅, Calendar ✅ (read), GA4 ✅. Token refreshed successfully. [Source: Hugh session f9b3e18a, 2026-06-25]
  • 2026-06-25 | Attempted to create calendar event (meeting with Ken at 1pm ET) but failed — OAuth token only has calendar.readonly scope, not calendar.events (write). Hugh reported needing Liam to reauthorize with calendar write scope via PowerShell OAuth flow. [Source: Hugh session 1a6587af, 2026-06-25]