xiaoxiaxia / scripts /wechat-activate.sh
Claude
Initial OpenClaw HF deployment
3d325be
#!/bin/bash
# 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!"