{
  "schemaVersion": "1.0",
  "item": {
    "slug": "oauth-helper",
    "name": "Oauth Helper",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/helloliuyongsheng-bot/oauth-helper",
    "canonicalUrl": "https://clawhub.ai/helloliuyongsheng-bot/oauth-helper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/oauth-helper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=oauth-helper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "oauth-helper",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-06T06:59:44.002Z",
      "expiresAt": "2026-05-13T06:59:44.002Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=oauth-helper",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=oauth-helper",
        "contentDisposition": "attachment; filename=\"oauth-helper-1.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "oauth-helper"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/oauth-helper"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/oauth-helper",
    "agentPageUrl": "https://openagent3.xyz/skills/oauth-helper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/oauth-helper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/oauth-helper/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OAuth Helper",
        "body": "Automate OAuth login with Telegram confirmation. Supports 7 major providers."
      },
      {
        "title": "Supported Providers",
        "body": "ProviderStatusDetection DomainGoogle✅accounts.google.comApple✅appleid.apple.comMicrosoft✅login.microsoftonline.com, login.live.comGitHub✅github.com/login/oauthDiscord✅discord.com/oauth2WeChat✅open.weixin.qq.comQQ✅graph.qq.com"
      },
      {
        "title": "Prerequisites",
        "body": "Clawd browser logged into the OAuth providers (one-time setup)\nTelegram channel configured"
      },
      {
        "title": "Flow A: Login Page with Multiple OAuth Options",
        "body": "When user requests to login to a website:\n\n1. Open website login page\n2. Scan page for available OAuth buttons\n3. Send Telegram message:\n   \"🔐 [Site] supports these login methods:\n    1️⃣ Google\n    2️⃣ Apple  \n    3️⃣ GitHub\n    Reply with number to choose\"\n4. Wait for user reply (60s timeout)\n5. Click the selected OAuth button\n6. Enter Flow B"
      },
      {
        "title": "Flow B: OAuth Authorization Page",
        "body": "When on an OAuth provider's page:\n\n1. Detect OAuth page type (by URL)\n2. Extract target site info\n3. Send Telegram: \"🔐 [Site] requests [Provider] login. Confirm? Reply yes\"\n4. Wait for \"yes\" (60s timeout)\n5. Execute provider-specific click sequence\n6. Wait for redirect back to original site\n7. Send: \"✅ Login successful!\""
      },
      {
        "title": "Google",
        "body": "URL patterns:\n- accounts.google.com/o/oauth2\n- accounts.google.com/signin/oauth\n- accounts.google.com/v3/signin"
      },
      {
        "title": "Apple",
        "body": "URL patterns:\n- appleid.apple.com/auth/authorize\n- appleid.apple.com/auth/oauth2"
      },
      {
        "title": "Microsoft",
        "body": "URL patterns:\n- login.microsoftonline.com/common/oauth2\n- login.microsoftonline.com/consumers\n- login.live.com/oauth20"
      },
      {
        "title": "GitHub",
        "body": "URL patterns:\n- github.com/login/oauth/authorize\n- github.com/login\n- github.com/sessions/two-factor"
      },
      {
        "title": "Discord",
        "body": "URL patterns:\n- discord.com/oauth2/authorize\n- discord.com/login\n- discord.com/api/oauth2"
      },
      {
        "title": "WeChat",
        "body": "URL patterns:\n- open.weixin.qq.com/connect/qrconnect\n- open.weixin.qq.com/connect/oauth2"
      },
      {
        "title": "QQ",
        "body": "URL patterns:\n- graph.qq.com/oauth2.0/authorize\n- ssl.xui.ptlogin2.qq.com\n- ui.ptlogin2.qq.com"
      },
      {
        "title": "Google",
        "body": "Account selector: [data-identifier], .JDAKTe\nAuth buttons: button:has-text(\"Allow\"), button:has-text(\"Continue\")"
      },
      {
        "title": "Apple",
        "body": "Email input: input[type=\"email\"], #account_name_text_field\nPassword: input[type=\"password\"], #password_text_field  \nContinue: button#sign-in, button:has-text(\"Continue\")\nTrust device: button:has-text(\"Trust\")"
      },
      {
        "title": "Microsoft",
        "body": "Account selector: .table-row[data-test-id]\nEmail input: input[name=\"loginfmt\"]\nPassword: input[name=\"passwd\"]\nNext: button#idSIButton9\nAccept: button#idBtn_Accept"
      },
      {
        "title": "GitHub",
        "body": "Email: input#login_field\nPassword: input#password\nSign in: input[type=\"submit\"]\nAuthorize: button[name=\"authorize\"]\n2FA: input#app_totp"
      },
      {
        "title": "Discord",
        "body": "Email: input[name=\"email\"]\nPassword: input[name=\"password\"]\nLogin: button[type=\"submit\"]\nAuthorize: button:has-text(\"Authorize\")"
      },
      {
        "title": "WeChat",
        "body": "Method: QR code scan\n- Screenshot QR code to user\n- Wait for mobile scan confirmation\n- Detect page redirect"
      },
      {
        "title": "QQ",
        "body": "Method: QR code or password login\nQR: Screenshot to user\nPassword mode:\n  - Switch: a:has-text(\"密码登录\")\n  - Username: input#u\n  - Password: input#p\n  - Login: input#login_button"
      },
      {
        "title": "OAuth Button Detection",
        "body": "Scan login pages for these selectors:\n\nProviderSelectorsCommon TextGoogle[data-provider=\"google\"], .google-btn\"Continue with Google\"Apple[data-provider=\"apple\"], .apple-btn\"Sign in with Apple\"Microsoft[data-provider=\"microsoft\"]\"Sign in with Microsoft\"GitHub[data-provider=\"github\"]\"Continue with GitHub\"Discord[data-provider=\"discord\"]\"Login with Discord\"WeChat.wechat-btn, img[src*=\"wechat\"]\"WeChat Login\"QQ.qq-btn, img[src*=\"qq\"]\"QQ Login\""
      },
      {
        "title": "One-Time Setup",
        "body": "Login to each provider in clawd browser:\n\n# Google\nbrowser action=navigate profile=clawd url=https://accounts.google.com\n\n# Apple\nbrowser action=navigate profile=clawd url=https://appleid.apple.com\n\n# Microsoft  \nbrowser action=navigate profile=clawd url=https://login.live.com\n\n# GitHub\nbrowser action=navigate profile=clawd url=https://github.com/login\n\n# Discord\nbrowser action=navigate profile=clawd url=https://discord.com/login\n\n# WeChat/QQ - Use QR scan, no pre-login needed"
      },
      {
        "title": "Error Handling",
        "body": "No \"yes\" reply → Cancel and notify user\n2FA required → Prompt user to enter code manually\nQR timeout → Re-screenshot new QR code\nLogin failed → Screenshot and send to user for debugging"
      },
      {
        "title": "Usage Example",
        "body": "User: Login to Kaggle for me\n\nAgent:\n1. Navigate to kaggle.com/account/login\n2. Detect Google/Facebook/Yahoo options\n3. Send: \"🔐 Kaggle supports:\n   1️⃣ Google\n   2️⃣ Facebook\n   3️⃣ Yahoo\n   Reply number to choose\"\n4. User replies: 1\n5. Click Google login\n6. Detect Google OAuth page\n7. Send: \"🔐 Kaggle requests Google login. Confirm? Reply yes\"\n8. User replies: yes\n9. Select account, click Continue\n10. Send: \"✅ Logged into Kaggle!\""
      },
      {
        "title": "Version History",
        "body": "v1.0.0 - Initial release with 7 OAuth providers"
      }
    ],
    "body": "OAuth Helper\n\nAutomate OAuth login with Telegram confirmation. Supports 7 major providers.\n\nSupported Providers\nProvider\tStatus\tDetection Domain\nGoogle\t✅\taccounts.google.com\nApple\t✅\tappleid.apple.com\nMicrosoft\t✅\tlogin.microsoftonline.com, login.live.com\nGitHub\t✅\tgithub.com/login/oauth\nDiscord\t✅\tdiscord.com/oauth2\nWeChat\t✅\topen.weixin.qq.com\nQQ\t✅\tgraph.qq.com\nPrerequisites\nClawd browser logged into the OAuth providers (one-time setup)\nTelegram channel configured\nCore Workflow\nFlow A: Login Page with Multiple OAuth Options\n\nWhen user requests to login to a website:\n\n1. Open website login page\n2. Scan page for available OAuth buttons\n3. Send Telegram message:\n   \"🔐 [Site] supports these login methods:\n    1️⃣ Google\n    2️⃣ Apple  \n    3️⃣ GitHub\n    Reply with number to choose\"\n4. Wait for user reply (60s timeout)\n5. Click the selected OAuth button\n6. Enter Flow B\n\nFlow B: OAuth Authorization Page\n\nWhen on an OAuth provider's page:\n\n1. Detect OAuth page type (by URL)\n2. Extract target site info\n3. Send Telegram: \"🔐 [Site] requests [Provider] login. Confirm? Reply yes\"\n4. Wait for \"yes\" (60s timeout)\n5. Execute provider-specific click sequence\n6. Wait for redirect back to original site\n7. Send: \"✅ Login successful!\"\n\nDetection Patterns\nGoogle\nURL patterns:\n- accounts.google.com/o/oauth2\n- accounts.google.com/signin/oauth\n- accounts.google.com/v3/signin\n\nApple\nURL patterns:\n- appleid.apple.com/auth/authorize\n- appleid.apple.com/auth/oauth2\n\nMicrosoft\nURL patterns:\n- login.microsoftonline.com/common/oauth2\n- login.microsoftonline.com/consumers\n- login.live.com/oauth20\n\nGitHub\nURL patterns:\n- github.com/login/oauth/authorize\n- github.com/login\n- github.com/sessions/two-factor\n\nDiscord\nURL patterns:\n- discord.com/oauth2/authorize\n- discord.com/login\n- discord.com/api/oauth2\n\nWeChat\nURL patterns:\n- open.weixin.qq.com/connect/qrconnect\n- open.weixin.qq.com/connect/oauth2\n\nQQ\nURL patterns:\n- graph.qq.com/oauth2.0/authorize\n- ssl.xui.ptlogin2.qq.com\n- ui.ptlogin2.qq.com\n\nClick Sequences by Provider\nGoogle\nAccount selector: [data-identifier], .JDAKTe\nAuth buttons: button:has-text(\"Allow\"), button:has-text(\"Continue\")\n\nApple\nEmail input: input[type=\"email\"], #account_name_text_field\nPassword: input[type=\"password\"], #password_text_field  \nContinue: button#sign-in, button:has-text(\"Continue\")\nTrust device: button:has-text(\"Trust\")\n\nMicrosoft\nAccount selector: .table-row[data-test-id]\nEmail input: input[name=\"loginfmt\"]\nPassword: input[name=\"passwd\"]\nNext: button#idSIButton9\nAccept: button#idBtn_Accept\n\nGitHub\nEmail: input#login_field\nPassword: input#password\nSign in: input[type=\"submit\"]\nAuthorize: button[name=\"authorize\"]\n2FA: input#app_totp\n\nDiscord\nEmail: input[name=\"email\"]\nPassword: input[name=\"password\"]\nLogin: button[type=\"submit\"]\nAuthorize: button:has-text(\"Authorize\")\n\nWeChat\nMethod: QR code scan\n- Screenshot QR code to user\n- Wait for mobile scan confirmation\n- Detect page redirect\n\nQQ\nMethod: QR code or password login\nQR: Screenshot to user\nPassword mode:\n  - Switch: a:has-text(\"密码登录\")\n  - Username: input#u\n  - Password: input#p\n  - Login: input#login_button\n\nOAuth Button Detection\n\nScan login pages for these selectors:\n\nProvider\tSelectors\tCommon Text\nGoogle\t[data-provider=\"google\"], .google-btn\t\"Continue with Google\"\nApple\t[data-provider=\"apple\"], .apple-btn\t\"Sign in with Apple\"\nMicrosoft\t[data-provider=\"microsoft\"]\t\"Sign in with Microsoft\"\nGitHub\t[data-provider=\"github\"]\t\"Continue with GitHub\"\nDiscord\t[data-provider=\"discord\"]\t\"Login with Discord\"\nWeChat\t.wechat-btn, img[src*=\"wechat\"]\t\"WeChat Login\"\nQQ\t.qq-btn, img[src*=\"qq\"]\t\"QQ Login\"\nOne-Time Setup\n\nLogin to each provider in clawd browser:\n\n# Google\nbrowser action=navigate profile=clawd url=https://accounts.google.com\n\n# Apple\nbrowser action=navigate profile=clawd url=https://appleid.apple.com\n\n# Microsoft  \nbrowser action=navigate profile=clawd url=https://login.live.com\n\n# GitHub\nbrowser action=navigate profile=clawd url=https://github.com/login\n\n# Discord\nbrowser action=navigate profile=clawd url=https://discord.com/login\n\n# WeChat/QQ - Use QR scan, no pre-login needed\n\nError Handling\nNo \"yes\" reply → Cancel and notify user\n2FA required → Prompt user to enter code manually\nQR timeout → Re-screenshot new QR code\nLogin failed → Screenshot and send to user for debugging\nUsage Example\nUser: Login to Kaggle for me\n\nAgent:\n1. Navigate to kaggle.com/account/login\n2. Detect Google/Facebook/Yahoo options\n3. Send: \"🔐 Kaggle supports:\n   1️⃣ Google\n   2️⃣ Facebook\n   3️⃣ Yahoo\n   Reply number to choose\"\n4. User replies: 1\n5. Click Google login\n6. Detect Google OAuth page\n7. Send: \"🔐 Kaggle requests Google login. Confirm? Reply yes\"\n8. User replies: yes\n9. Select account, click Continue\n10. Send: \"✅ Logged into Kaggle!\"\n\nVersion History\nv1.0.0 - Initial release with 7 OAuth providers"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/helloliuyongsheng-bot/oauth-helper",
    "publisherUrl": "https://clawhub.ai/helloliuyongsheng-bot/oauth-helper",
    "owner": "helloliuyongsheng-bot",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/oauth-helper",
    "downloadUrl": "https://openagent3.xyz/downloads/oauth-helper",
    "agentUrl": "https://openagent3.xyz/skills/oauth-helper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/oauth-helper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/oauth-helper/agent.md"
  }
}