32 lines
2.0 KiB
Markdown
32 lines
2.0 KiB
Markdown
# examples — 多语言 iLink 调用示例
|
||
|
||
每个语言一份**单文件、可独立运行**的最小示例,覆盖同一套流程:
|
||
|
||
```
|
||
扫码登录(get_bot_qrcode / get_qrcode_status) → 长轮询(getupdates) → 回声回复(sendmessage)
|
||
```
|
||
|
||
AI 后端接入点统一是 `askYourAI` / `ask_your_ai` / `AskYourAI` 这一个函数,默认是回声(echo),换成你自己的项目调用即可。
|
||
|
||
| 语言 | 文件 | 依赖 | 运行 |
|
||
|---|---|---|---|
|
||
| Python | [python/ilink_bridge.py](python/ilink_bridge.py) | `requests` | `python3 ilink_bridge.py` |
|
||
| Go | [go/main.go](go/main.go) | 仅标准库 | `go run main.go` |
|
||
| Java | [java/IlinkBridge.java](java/IlinkBridge.java) | JDK 11+ | `javac IlinkBridge.java && java IlinkBridge` |
|
||
| C | [c/ilink_client.c](c/ilink_client.c) | libcurl | `gcc ilink_client.c -o ilink -lcurl && ./ilink` |
|
||
| C++ | [cpp/ilink_client.cpp](cpp/ilink_client.cpp) | libcurl | `g++ ilink_client.cpp -o ilink -lcurl && ./ilink` |
|
||
|
||
## 共同约定
|
||
|
||
- 首次运行会打印二维码链接,用微信扫码确认后拿到 `bot_token`,写入本目录的 `bridge-state.json`(权限 600,**不要提交 git**)
|
||
- 之后重启免扫码,直接进入长轮询
|
||
- 收到文本消息原样回声;游标 `get_updates_buf` 每轮落盘
|
||
- `errcode=-14`(会话过期)时退出并提示重新扫码(删掉 state 文件再运行)
|
||
|
||
## 有意省略的部分(保持示例简单)
|
||
|
||
- **JSON 库**:Go/Python 用标准方案;Java/C/C++ 为了让示例零额外依赖,用了最朴素的字段提取,注释里标了位置——正式项目请换 Jackson / cJSON / nlohmann-json
|
||
- **媒体消息**(图片/语音/文件的 AES-128-ECB + CDN):见 [../docs/03-messages-and-media.md](../docs/03-messages-and-media.md),字段细节以官方包源码 `src/cdn/` 为准
|
||
- **sendtyping / getconfig**:非必需,协议见 [../docs/02-ilink-protocol.md](../docs/02-ilink-protocol.md) 第 9 节
|
||
- 多 item(图文混排)只做了文本拼接,完整规范化模型见 03 文档第 7 节
|