docs: split WeCom configuration into Chinese and English versions
- Rename docs/wecom-app-configuration.md to -cn.md (Chinese) - Create docs/wecom-app-configuration-en.md (English translation) Generated with [Z.ai](https://z.ai/subscribe?ic=JGTYCX7ZO7) Co-Authored-By: Z.ai GLM-5
This commit is contained in:
parent
aa6e2c4643
commit
cf8b09d2d3
2 changed files with 117 additions and 0 deletions
117
docs/wecom-app-configuration-en.md
Normal file
117
docs/wecom-app-configuration-en.md
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
# WeCom App Configuration Guide
|
||||
|
||||
This document explains how to configure the WeCom App (wecom-app) channel in PicoClaw.
|
||||
|
||||
## Features
|
||||
|
||||
| Feature | Status |
|
||||
|---------|--------|
|
||||
| Receive messages | ✅ |
|
||||
| Send messages | ✅ |
|
||||
| Private chat | ✅ |
|
||||
| Group chat | ❌ |
|
||||
|
||||
## Configuration Steps
|
||||
|
||||
### 1. WeCom Admin Console Setup
|
||||
|
||||
1. Log in to [WeCom Admin Console](https://work.weixin.qq.com/wework_admin)
|
||||
2. Go to "Application Management" → Select your custom app
|
||||
3. Record the following information:
|
||||
- **AgentId**: Shown on the app details page
|
||||
- **Secret**: Click "View" to get it
|
||||
4. Go to "My Company" page and record the **CorpID** (Enterprise ID)
|
||||
|
||||
### 2. Message Reception Configuration
|
||||
|
||||
1. On the app details page, click "Set API Receiver" under "Receive Messages"
|
||||
2. Fill in the following:
|
||||
- **URL**: `http://your-server:18792/webhook/wecom-app`
|
||||
- **Token**: Randomly generated or custom (for signature verification)
|
||||
- **EncodingAESKey**: Click "Random Generate" to generate a 43-character key
|
||||
3. When you click "Save", WeCom will send a verification request
|
||||
|
||||
### 3. PicoClaw Configuration
|
||||
|
||||
Add the following configuration to your `config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"channels": {
|
||||
"wecom_app": {
|
||||
"enabled": true,
|
||||
"corp_id": "wwxxxxxxxxxxxxxxxx", // Enterprise ID
|
||||
"corp_secret": "xxxxxxxxxxxxxxxxxxxxxxxx", // App Secret
|
||||
"agent_id": 1000002, // App AgentId
|
||||
"token": "your_token", // Token from message reception config
|
||||
"encoding_aes_key": "your_encoding_aes_key", // EncodingAESKey from message reception config
|
||||
"webhook_host": "0.0.0.0",
|
||||
"webhook_port": 18792,
|
||||
"webhook_path": "/webhook/wecom-app",
|
||||
"allow_from": [],
|
||||
"reply_timeout": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### 1. Callback URL Verification Failed
|
||||
|
||||
**Symptom**: WeCom shows verification failed when saving API receiver settings
|
||||
|
||||
**Check**:
|
||||
- Confirm server firewall has port 18792 open
|
||||
- Confirm `corp_id`, `token`, `encoding_aes_key` are configured correctly
|
||||
- Check PicoClaw logs for incoming requests
|
||||
|
||||
### 2. Chinese Message Decryption Failed
|
||||
|
||||
**Symptom**: `invalid padding size` error when sending Chinese messages
|
||||
|
||||
**Cause**: WeCom uses non-standard PKCS7 padding (32-byte block size)
|
||||
|
||||
**Solution**: Ensure you're using the latest version of PicoClaw, which has fixed this issue.
|
||||
|
||||
### 3. Port Conflict
|
||||
|
||||
**Symptom**: Port already in use error at startup
|
||||
|
||||
**Solution**: Change `webhook_port` to another port, e.g., 18794
|
||||
|
||||
## Technical Details
|
||||
|
||||
### Encryption Algorithm
|
||||
|
||||
- **Algorithm**: AES-256-CBC
|
||||
- **Key**: 32 bytes from Base64-decoded EncodingAESKey
|
||||
- **IV**: First 16 bytes of AESKey
|
||||
- **Padding**: PKCS7 (32-byte block size, not standard 16 bytes)
|
||||
- **Message Format**: XML
|
||||
|
||||
### Message Structure
|
||||
|
||||
Decrypted message format:
|
||||
```
|
||||
random(16B) + msg_len(4B) + msg + receiveid
|
||||
```
|
||||
|
||||
Where `receiveid` is `corp_id` for custom apps.
|
||||
|
||||
## Debugging
|
||||
|
||||
Enable debug mode to see detailed logs:
|
||||
|
||||
```bash
|
||||
picoclaw gateway --debug
|
||||
```
|
||||
|
||||
Key log identifiers:
|
||||
- `wecom_app`: WeCom App channel related logs
|
||||
- `wecom_common`: Encryption/decryption related logs
|
||||
|
||||
## References
|
||||
|
||||
- [WeCom Official Documentation - Receiving Messages](https://developer.work.weixin.qq.com/document/path/96211)
|
||||
- [WeCom Official Encryption Library](https://github.com/sbzhu/weworkapi_golang)
|
||||
Loading…
Add table
Reference in a new issue