Spaces:
Running
Running
| # G5: wechat-activate.sh - 微信凭证检测 → 快速激活/完整安装 | |
| set -e | |
| echo "[WeChat] Starting WeChat activation..." | |
| # 检查环境变量 | |
| WECHAT_TOKEN="${WECHAT_TOKEN:-}" | |
| WECHAT_APPID="${WECHAT_APPID:-}" | |
| WECHAT_SECRET="${WECHAT_SECRET:-}" | |
| WECHAT_ENABLED="${WECHAT_ENABLED:-false}" | |
| # 微信凭证文件 | |
| CREDENTIALS_DIR="${OPENCLAW_STATE_DIR:-/root/.openclaw}/credentials" | |
| WECHAT_CRED_FILE="$CREDENTIALS_DIR/wechat.json" | |
| # 检查是否启用 | |
| if [ "$WECHAT_ENABLED" != "true" ]; then | |
| echo "[WeChat] WeChat integration disabled (WECHAT_ENABLED != true)" | |
| exit 0 | |
| fi | |
| # 检查凭证 | |
| if [ -z "$WECHAT_TOKEN" ] && [ -z "$WECHAT_APPID" ]; then | |
| echo "[WeChat] No WeChat credentials found, skipping activation" | |
| echo "[WeChat] To enable, set WECHAT_TOKEN or WECHAT_APPID+WECHAT_SECRET" | |
| exit 0 | |
| fi | |
| # 创建凭证目录 | |
| mkdir -p "$CREDENTIALS_DIR" | |
| # 快速激活模式 - 已有token | |
| if [ -n "$WECHAT_TOKEN" ]; then | |
| echo "[WeChat] Quick activation mode (using existing token)" | |
| cat > "$WECHAT_CRED_FILE" << EOF | |
| { | |
| "type": "wechat", | |
| "enabled": true, | |
| "mode": "quick", | |
| "token": "$WECHAT_TOKEN", | |
| "created_at": "$(date -Iseconds)" | |
| } | |
| EOF | |
| echo "[WeChat] Quick activation completed!" | |
| echo "[WeChat] Credentials saved to $WECHAT_CRED_FILE" | |
| # 完整安装模式 - 使用AppID和Secret | |
| elif [ -n "$WECHAT_APPID" ] && [ -n "$WECHAT_SECRET" ]; then | |
| echo "[WeChat] Full installation mode (using AppID + Secret)" | |
| # 获取access_token | |
| echo "[WeChat] Fetching access token..." | |
| TOKEN_RESPONSE=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$WECHAT_APPID&secret=$WECHAT_SECRET" 2>/dev/null || echo '{}') | |
| ACCESS_TOKEN=$(echo "$TOKEN_RESPONSE" | jq -r '.access_token // empty') | |
| EXPIRES_IN=$(echo "$TOKEN_RESPONSE" | jq -r '.expires_in // 7200') | |
| if [ -n "$ACCESS_TOKEN" ]; then | |
| echo "[WeChat] Access token obtained successfully" | |
| cat > "$WECHAT_CRED_FILE" << EOF | |
| { | |
| "type": "wechat", | |
| "enabled": true, | |
| "mode": "full", | |
| "app_id": "$WECHAT_APPID", | |
| "app_secret": "$WECHAT_SECRET", | |
| "access_token": "$ACCESS_TOKEN", | |
| "expires_in": $EXPIRES_IN, | |
| "created_at": "$(date -Iseconds)" | |
| } | |
| EOF | |
| echo "[WeChat] Full installation completed!" | |
| echo "[WeChat] Credentials saved to $WECHAT_CRED_FILE" | |
| # 获取公众号信息 | |
| echo "[WeChat] Fetching account info..." | |
| ACCOUNT_INFO=$(curl -s "https://api.weixin.qq.com/cgi-bin/account/getaccountbasicinfo?access_token=$ACCESS_TOKEN" 2>/dev/null || echo '{}') | |
| echo "[WeChat] Account info: $(echo "$ACCOUNT_INFO" | jq -r '.nickname // "unknown"')" | |
| else | |
| ERRMSG=$(echo "$TOKEN_RESPONSE" | jq -r '.errmsg // "Unknown error"') | |
| echo "[WeChat] Failed to get access token: $ERRMSG" | |
| exit 1 | |
| fi | |
| else | |
| echo "[WeChat] Insufficient credentials" | |
| echo "[WeChat] Provide either:" | |
| echo " - WECHAT_TOKEN (for quick activation)" | |
| echo " - WECHAT_APPID + WECHAT_SECRET (for full installation)" | |
| exit 1 | |
| fi | |
| echo "[WeChat] Activation process completed!" | |