mac上用utm开设虚拟机隔离安装EasyConnect
- 在宿主机mac上安装utm来开设一个虚拟机,虚拟机可以用和宿主机一样的系统,我就是这么干的,其实无所谓。
- 在虚拟机主中安装EasyConnect的mac版,安装地址需要找一下,官网不知道为什么不好意思列出来,我用的地址是:https://download.sangfor.com.cn/download/product/sslvpn/pkg/mac_767/EasyConnect_7_6_7_4.dmg
- 如何连接EasyConnect这里就不讲了,根据客户给你的连接方式设置。
- 接下来用gost来转发一下:安装gost参见https://gost.sh
- 转发命令参考:文末。
- 在宿主机连接目标主机(例如:192.168.0.15:22和192.168.0.16:38306)的时候,查看一下虚拟机的IP地址,加上15022或者16306连接就可以了。
gost -L :15022/192.168.0.15:22 -L :16306/192.168.0.16:38306
设置了两个目标主机的转发,一个是ssh,一个是mysql,具体可以用AI帮你写命令。
电报上有哪些知名的数字阅读应用?
下面整理了一批在 Telegram(电报) 平台上比较活跃、口碑不错的 数字阅读类 机器人(Bot)和频道(Channel),按功能划分,便于你快速挑选使用。
⚠️ 版权提示
- 许多 Bot 提供的书籍、漫画、论文等资源并非官方授权,存在版权风险。使用时请自行判断合法性,尽量优先关注官方出版社、作者或已取得授权的渠道。
- 为了保护账号安全,建议只在信任的 Bot里发送个人信息,避免点击陌生 Bot 发来的外部链接(尤其是
.exe、.apk等可执行文件)。
1️⃣ 电子书(E‑Book)类
| 名称 / Bot | Telegram 用户名 | 内容特色 | 语言/地区 | 主要功能 | 备注 |
|---|---|---|---|---|---|
| 📚 BookBot | @bookbot | 海量公共版权图书(Project Gutenberg、Open Library) | 英文 | 搜索书名/作者 → 直接下载 epub、mobi、pdf;可一键发送至 Kindle | 只提供公有领域作品,安全可靠 |
| 📖 FreeEbook Bot | @freeebookbot | 归类清晰的经典文学、科幻、非虚构 | 多语言(英、德、法、西) | 关键词搜索、按类别浏览,支持 Telegram 文件直接预览 | 内容更新较慢,但全免费 |
| 🧾 PDF Bot | @pdfbot | 专注PDF文档的搜索与传输 | 英文 | 发送关键词 → 返回对应 PDF(多数为学术、技术文档) | 版权不一,需自行甄别 |
| 📚 ZLibrary Bot(非官方) | @zlibrarybot | 收录上千本最新出版的小说、教科书 | 多语言 | 按书名/ISBN搜索,提供 epub、pdf 下载链接 | 属灰色资源,使用前请评估风险 |
| 📚 Bookshare Bot | @bookshare_bot | 针对视障人士的有声书、可访问电子书 | 英文 | 提供 DAISY、MP3 版阅读材料 | 需先在 Bot 中完成注册(免费) |
使用示例(以 @bookbot 为例)
/search <关键词> # 如:/search Pride and Prejudice
/list <分类> # 如:/list science-fiction
/download <书籍ID> # Bot 会返回文件或下载链接
2️⃣ 有声书 / 播客(Audiobook / Podcast)类
| 名称 / Bot | Telegram 用户名 | 内容特色 | 语言/地区 | 主要功能 | 备注 |
|---|---|---|---|---|---|
| 🎧 AudioBook Bot | @audiobook_bot | 经典文学、有声小说、语言学习材料 | 英文 | 按章节分段推送 MP3,支持 离线缓存 | 资源多为公有领域或自制朗读 |
| 📚 Storytel Bot(官方) | @storytel_bot | Storytel 订阅平台的官方 Bot | 多语言(英、瑞、挪) | 登录后可直接在 Telegram 中播放有声书,支持 书签 | 需要付费订阅 |
| 🗣️ Learn English Podcast | @englishpodcastbot | 以英语学习为核心的短篇播客 | 英文 | 每日推送 5‑10 分钟学习材料,配有文字稿 | 适合学习者 |
| 🎧 Radio Bot | @radio_bot | 全球电台、播客、新闻音频流 | 多语言 | 按国家/主题搜索,返回 流媒体链接(m3u8) | 只提供流媒体,不保存文件 |
3️⃣ 漫画 / 漫画阅读(Manga / Comic)类
| 名称 / Bot | Telegram 用户名 | 内容特色 | 语言/地区 | 主要功能 | 备注 |
|---|---|---|---|---|---|
| 📚 MangaBot | @mangabot | 日漫、韩漫、欧美漫画,更新速度快 | 日文/中文/英文 | 关键词搜索 → 发送 ZIP/CBZ 包或单张图片 | 部分资源版权不明,建议仅用于个人阅读 |
| 🖼️ ComicBot | @comicbot | 经典漫画(Marvel、DC)以及独立漫画 | 英文 | 按系列、期号查询,提供 PDF 或 CBZ 下载 | 部分内容受版权保护 |
| 📖 Manga Reader(非官方) | @manga_reader_bot | 按章节在线阅读,支持翻页功能 | 中文 | 发送漫画名 → Bot 返回 图片合集,支持章节跳转 | 资源更新频繁,适合追更 |
| 📚 漫画合集频道 | @manga_collection(Channel) | 每日更新热门连载,提供种子/压缩包下载链接 | 中文 | 频道里直接发布 磁力链接(需自行下载) | 版权风险较大,慎点外链 |
漫画 Bot 基本指令
/search <漫画名> # 搜索漫画
/chapter <漫画ID> <章节> # 获取指定章节(返回图片或压缩包)
/latest # 查看最新连载
4️⃣ 新闻 / 资讯阅读(News / Magazine)类
| 名称 / Bot | Telegram 用户名 | 内容特色 | 语言/地区 | 主要功能 | 备注 |
|---|---|---|---|---|---|
| 📰 NewsBot | @newsbot | 全球主流媒体(BBC、NYTimes、Reuters)摘要 | 多语言 | 按分类(科技、财经、体育)推送每日摘要,支持 PDF 版 | 免费,内容经过编辑 |
| 📖 Medium Bot | @medium_bot | 收录 Medium 上的精选长文、技术专栏 | 英文 | 关键字订阅 → 自动推送新文章链接 | 需登录 Medium 才能看到完整内容 |
| 🗞️ The Economist Bot(官方) | @economist_bot | 《经济学人》精选文章 | 英文 | 每日 5 篇精选,提供 PDF 与 文字摘要 | 需付费订阅 |
| 📚 电子杂志频道 | @digital_magazines(Channel) | 时尚、设计、摄影等专业杂志 PDF | 多语言 | 每周更新 1‑2 期 PDF 杂志 | 部分为免费公开版,部分为付费版 |
| 📰 今日头条 Bot(中文) | @toutiao_bot | 汇聚 今日头条 热点新闻,支持 图文、视频 | 中文 | 按兴趣标签订阅,支持 离线缓存 | 内容来源广泛,偶有广告 |
5️⃣ 学术 / 论文(Academic / Research)类
| 名称 / Bot | Telegram 用户名 | 内容特色 | 语言/地区 | 主要功能 | 备注 |
|---|---|---|---|---|---|
| 📚 Sci-Hub Bot(非官方) | @scihubbot | 通过 Sci‑Hub 直接下载付费论文 | 多语言 | 输入 DOI / URL → 返回 PDF(若可获取) | 版权争议大,仅作科研参考 |
| 🧠 ArXiv Bot | @arxiv_bot | 收录 arXiv 预印本(数学、物理、CS) | 英文 | 按分类或关键词订阅,每日推送最新预印本 | 完全合法,开放获取 |
| 📖 ResearchGate Bot | @researchgate_bot | 把 ResearchGate 中公开的论文发送到 Telegram | 英文 | 发送论文标题 → 返回 PDF 或链接 | 仅限公开分享的文献 |
| 📚 学术资源频道 | @academic_resources(Channel) | 汇总高校教材、公开课 PPT、实验手册 | 中文 | 频道内发布 百度网盘、OneDrive 分享链接 | 资源质量不一,需自行甄别 |
示例:使用 @arxiv_bot
/search cs.AI # 搜索人工智能领域最新论文
/subscribe cs.AI # 订阅此分类,每天自动推送
6️⃣ 语言学习 / 电子教材类
| 名称 / Bot | Telegram 用户名 | 内容特色 | 语言/地区 | 主要功能 | 备注 |
|---|---|---|---|---|---|
| 🈚️ Duolingo Bot(官方) | @duolingo_bot | Duolingo 官方练习提醒 + 词库推送 | 多语言 | 每日学习任务、单词卡片、听力练习 | 需绑定 Duolingo 账号 |
| 📚 电子教材频道 | @e_textbooks(Channel) | 中小学教材、大学公开课 PDF | 中文 | 按学段、学科分类下载 | 大多数为 公开版权 教材 |
| 🗣️ LinguaBot | @linguabot | 句子听写、词汇测验、短文朗读 | 多语言 | 交互式练习,支持 Telegram 语音 发送答案 | 适合自学者 |
| 📖 经典文学学习 Bot | @classic_reading_bot | 提供 分章节朗读 与 原文对照(英、法、德) | 多语言 | 发送章节号 → 返回 MP3 与 原文 | 兼具阅读与听力练习 |
7️⃣ 如何快速发现更多阅读 Bot / 频道
- 使用 Telegram 内置搜索
- 在聊天列表左上角点 放大镜 → 输入关键词如 “电子书”“漫画”“paper”“audio book”。
- 搜索结果会显示 Bot、Channel、Group,挑选带有 Verified(已验证) 标记的更可靠。
- 利用第三方目录网站
- Storebot(https://storebot.me/)收录了大量 Bot,搜索 “book”“manga”“news”。
- Bots Archive(https://botsarchive.com/)提供分类、评分、用户评论。
- 加入相关社区
- Telegram 中文阅读社区(如
@tgbkreading)经常分享新 Bot。 - Reddit / r/TelegramBots、GitHub 项目也会公布开源 Bot 源码,便于自行部署或自行审计。
- Telegram 中文阅读社区(如
- 关注官方出版社 / 作者账号
- 如 Penguin Books、HarperCollins、中国出版集团 等会在 Telegram 上开设官方频道,提供免费章节、电子版优惠码等。
8️⃣ 小贴士:安全、隐私与使用技巧
| 场景 | 建议 |
|---|---|
| 首次使用 Bot | – 发送 /start 后先阅读 Bot 给出的 使用说明 与 隐私声明。– 若 Bot 要求提供手机号、邮箱等个人信息,请先确认是否必要。 |
| 下载文件 | – Telegram 会对文件进行 端到端加密,但若 Bot 返回外部链接(如 Google Drive、OneDrive、磁力链接),请自行检查链接安全性。 |
| 版权合规 | – 对于需要长期保存或商业使用的内容,尽量选择 官方授权 或 公有领域 资源。 – 个人学习、离线阅读可以使用非授权资源,但请勿进行二次传播。 |
| 节省流量 | – 大多数 Bot 支持 压缩包(ZIP/CBZ)或 PDF,如果只想阅读单章节,可使用 /chapter <id> <num>只下载所需部分。 |
| 离线阅读 | – 下载后文件会保存在 Telegram 本地缓存,右键(长按)文件 → “保存到相册/文件”。 – 也可使用 Telegram Desktop 将文件拖拽至本地文件夹。 |
| 多平台同步 | – 同一个 Bot 在手机、桌面、Web 端的会话是同步的,下载的文件会在所有设备上显示(前提是打开“同步文件”)。 |
9️⃣ 推荐组合(示例使用场景)
| 场景 | 推荐 Bot / Channel | 组合使用方式 |
|---|---|---|
| 日常文学阅读 | @bookbot + @freeebookbot | 用 @bookbot 搜索经典公有版权作品,若想找更现代的免费书籍则切换到 @freeebookbot。 |
| 追更漫画 | @mangabot + @manga_reader_bot | 先用 @mangabot 找到漫画 ID,再用 @manga_reader_bot 按章节逐页阅读,避免一次性下载大文件。 |
| 学术论文 | @arxiv_bot + @scihubbot(仅作科研参考) | 订阅感兴趣的 arXiv 分类,每天收到最新预印本;若需要获取付费期刊的特定论文,可尝试 @scihubbot(自行评估合法性)。 |
| 英语有声书+朗读 | @audiobook_bot + @englishpodcastbot | 早晨使用 @audiobook_bot 听经典小说,晚上利用 @englishpodcastbot 练习听力并配合文字稿。 |
| 漫画追番 | @mangabot + @manga_collection(Channel) | 在 @mangabot 中快速查看章节,若想一次性下载全套则在频道 @manga_collection 里获取压缩包(请注意版权)。 |
| 科研资料 | @arxiv_bot + @academic_resources | @arxiv_bot 订阅前沿预印本,配合 @academic_resources 下载公开课教材、实验手册。 |
| 语言学习 | @duolingo_bot + @classic_reading_bot | 每天完成 Duolingo 任务后,用 @classic_reading_bot 选取对应章节的原文和朗读文件进行双向练习。 |
10️⃣ 结语
Telegram 以 Bot 为核心的生态,使得 数字阅读 能够在聊天窗口里完成搜索、下载、推送、甚至在线阅读的完整闭环。上述列表覆盖了从 公有版权文学、最新出版小说、漫画、新闻、学术论文 到 语言学习 的常见需求。
在实际使用时,先确认资源来源的合法性,保持账号安全,并结合个人阅读习惯挑选最适合的 Bot 或频道。祝你在 Telegram 上找到满意的阅读伙伴,享受随时随地的阅读乐趣! 🎉📖🚀
by gpt-oss:120b
微信小程序的开发和电报的小程序的开发有什么区别?
微信小程序 vs. Telegram 小程序(Web App)
| 维度 | 微信小程序 | Telegram 小程序(Web App) |
|---|---|---|
| 定位 | 微信生态内部的轻量级原生‑like 应用,用户通过「发现」或扫一扫等入口打开。 | Telegram 客户端内的 Web App,通过 Bot 按钮或 Inline Keyboard 打开,实际上是一个 网页(HTML+JS)嵌入在聊天窗口。 |
| 运行时 | 微信自研的 Mini‑Program Runtime(基于 V8 + 自有 UI 渲染层)。 | Telegram 客户端内置的 Chromium‑based WebView(iOS、Android、桌面均使用同一套渲染引擎)。 |
| 前端语言/框架 | – WXML(类 XML 的模板) – WXSS(类似 CSS,支持 rpx 响应单位) – JavaScript/TypeScript(ES6+) – 也可以使用 Vue、React、UniApp、Taro等编译到小程序。 | – 任意 HTML5 + CSS + JavaScript(可使用 React、Vue、Svelte、Angular…) – 推荐使用 Telegram Web Apps JavaScript SDK( window.Telegram.WebApp)进行交互。 |
| 开发工具 | – 微信开发者工具(IDE) – CLI( miniprogram-ci)– 可在 VS Code 中通过插件调试 | – 任意编辑器(VS Code、WebStorm 等) – 通过 Telegram Bot API 配置 web_app 按钮– 可使用 ngrok/自有域名调试实时预览 |
| 后端交互 | – 通过 wx.request、wx.cloud(云函数)– 支持 WebSocket( wx.connectSocket)– 受限于同源策略,需走微信的 HTTPS 域名白名单 | – 完全自由的 fetch / XMLHttpRequest(只要符合 Telegram 要求的 HTTPS) – 推荐使用 Telegram Bot API 与 Bot 进行双向通信( sendData / onEvent) |
| 身份认证 | – wx.login → 获取 code → 服务器换取 session_key + openid– 支持 手机号、微信支付等安全接口 | – window.Telegram.WebApp.initData 包含用户信息(id, first_name, last_name, username, photo_url, auth_date, hash)– 通过 HMAC‑SHA256 验证签名,确保数据未被篡改 |
| 页面路由 | – app.json 中声明页面路径– wx.navigateTo / redirectTo / switchTab 等 API | – 完全由 SPA 框架自行管理路由(如 React Router) – Telegram 只负责打开/关闭整个 Web App |
| 系统能力 | – 原生 API:相册、摄像头、地理位置、文件、支付、分享、获取用户信息、订阅消息、推送、广告、直播、插件等。 – 组件库:官方 UI(WeUI)及第三方(Vant‑Weapp、NutUI) | – Web App SDK:获取窗口尺寸、主题、用户信息、返回按钮、发送数据、打开外部链接、收起键盘、显示通知等。 – 通过 Bot API 可调用 Telegram 原生功能:发送消息、发起支付、获取用户位置、邀请好友、查询聊天信息等。 |
| 发布审核 | – 必须提交 微信小程序审核(需填写业务、隐私政策、截图等) – 审核周期 1‑7 天不等 | – 无需平台审核,只要 Bot 已通过 Telegram Bot Review(如果涉及支付或敏感功能),Web App 可以直接上线。 |
| 分发渠道 | – 微信「小程序入口」:搜索、二维码、公众号关联、朋友圈、附近、游戏中心等。 – 受限于微信生态(只能在微信内使用)。 | – 通过 Bot 发送按钮、Inline Keyboard、deep‑link (t.me/yourbot?start=xxxx)、群组、频道、Telegram 广告。– 可在任何 Telegram 客户端使用,跨平台(iOS、Android、桌面、Web)。 |
| 商业化 | – 微信支付、广告、会员卡、直播、拼团、卡券等完整生态。 – 需通过微信支付商户号、开通相应插件。 | – Telegram Payments(支持 Stripe、PayPal、其它支付网关)通过 Bot API 实现。 – 也可以接入 广告网络(如 Google AdSense)或自定义付费墙。 |
| 隐私/数据 | – 必须在 小程序后台 配置隐私声明,用户授权后才可获取敏感信息。 | – 所有数据均在 Web App 中自行管理,Telegram 只提供 已签名的用户数据。开发者自行实现 GDPR/CCPA 合规。 |
| 开发门槛 | – 需要学习 WXML/WXSS 语法和微信专有 API,生态相对封闭但文档完整。 | – 前端技术栈与普通 Web 开发一致,学习成本低;重点是熟悉 Telegram Bot API 与 WebApp SDK。 |
| 调试/预览 | – 微信开发者工具提供 真机预览、云函数调试、网络请求抓包。 | – 通过 ngrok 或自建 HTTPS 服务器实现即时预览;Telegram 本身不提供调试面板,需要自行在浏览器 console 中查看。 |
1️⃣ 微信小程序的核心开发流程(快速回顾)
- 注册小程序账号 → 在微信公众平台开通小程序。
- 创建项目 → 使用 微信开发者工具,选择“新建小程序”。
- 目录结构(典型)
├─ pages/ │ ├─ index/ │ │ ├─ index.wxml │ │ ├─ index.wxss │ │ ├─ index.js │ │ └─ index.json ├─ utils/ ├─ app.js ├─ app.json └─ app.wxss - 声明页面:
app.json中pages数组。 - 页面渲染:
WXML+WXSS→ 类 React 的 data‑binding ({{variable}})。 - 业务代码:在
*.js中使用 Page、App、Component 构造函数。 - 调用微信原生能力:
wx.xxx(如wx.getLocation、wx.uploadFile、wx.pay). - 云开发(可选):
wx.cloud→ 云函数、数据库、文件存储一键部署。 - 测试:
- 模拟器(微信开发者工具)
- 真机预览(扫码或二维码)
- 调试面板(Network、Console、Performance)
- 提交审核 → 填写业务信息、隐私政策、上传代码。
- 发布 → 审核通过后上线,后续可通过 版本管理 进行灰度或回滚。
关键点:
- 域名白名单:所有
wx.request、wx.uploadFile必须走已在「业务域名」中备案的 HTTPS 域名。- 尺寸适配:使用
rpx(相对像素)进行 UI 适配,1rpx = 1/750 屏幕宽度。- 安全审计:小程序不允许执行
eval、new Function等动态代码。
2️⃣ Telegram 小程序(Web App)的核心开发流程
2.1 注册 Bot 并开启 Web App 支持
- 与 @BotFather 对话 →
/newbot创建 Bot。 - 获取 Bot Token。
- 通过 BotFather 或 Bot API 设置 Web App URL(
setChatMenuButton、setMyCommands、setInlineKeyboardButton的web_app字段)。 - (可选)开启 Telegram Payments →
/setpaymentprovider。
2.2 项目结构(普通前端项目)
my-telegram-webapp/
├─ public/
│ └─ index.html # 入口页面,必须在 <head> 中加入 <script src="https://telegram.org/js/telegram-web-app.js"></script>
├─ src/
│ ├─ App.jsx
│ ├─ pages/
│ │ ├─ Home.jsx
│ │ └─ Checkout.jsx
│ └─ utils/
│ └─ telegram.js # 封装 Telegram WebApp SDK
├─ package.json
└─ vite.config.js # 或 webpack/parcel 等
2.3 关键代码片段
<!-- index.html -->
<script src="https://telegram.org/js/telegram-web-app.js"></script>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
// utils/telegram.js
export const tg = window.Telegram.WebApp;
// 初始化数据(首次打开时自动调用)
export function initTelegram() {
// 检查签名
const initData = tg.initData;
const initDataUnsafe = tg.initDataUnsafe; // 已解析但未验证
// 若需要服务器端二次验证:
// fetch('/api/verify', { method: 'POST', body: JSON.stringify({ initData }) })
}
// 发送数据给 Bot
export function sendData(payload) {
tg.sendData(JSON.stringify(payload));
}
// 关闭 Web App 并返回数据给 Bot(Bot 可通过 onEvent 收到)
export function closeApp(result = {}) {
tg.close();
}
// 在页面中使用
import { tg, initTelegram, sendData } from './utils/telegram';
function onBuy() {
const order = { productId: 123, qty: 1 };
sendData({ action: 'order', payload: order });
tg.showAlert('已提交订单,稍后 Bot 会回复您');
}
2.4 常用 SDK 方法(window.Telegram.WebApp)
| 方法 / 属性 | 说明 |
|---|---|
initData | 完整的 URL 参数字符串,供服务器端校验 HMAC。 |
initDataUnsafe | 已解析为对象(不安全,仅在前端使用)。 |
themeParams | 当前主题颜色(bg_color, text_color, hint_color等),可用于 UI 适配。 |
colorScheme | 'light' / 'dark' |
viewportHeight / viewportStableHeight | 可视区高度(键盘弹起前后),用于动态布局。 |
isExpanded, expand(), close() | 控制 Web App 的展开/收起状态。 |
showAlert(text), showConfirm(text), showPopup(params) | 调用原生弹窗。 |
showInvoice(invoice) | 调起 Telegram 支付(需要 Bot 配置)。 |
sendData(data) | 将字符串发送回 Bot(Bot 收到 callback_query 的 data字段)。 |
onEvent(event, callback) | 监听 themeChanged, viewportChanged, backButtonClicked 等事件。 |
安全提醒:所有从
initData中得到的用户信息(id,username等)必须在服务器端通过 HMAC‑SHA256(使用 Bot Token)进行校验,否则可能被篡改。
2.5 部署 & 调试
| 步骤 | 操作 |
|---|---|
| 本地调试 | 使用 ngrok http 3000(或 cloudflare tunnel)生成公网 HTTPS URL → 在 Bot 的 web_app 参数中填入该 URL。 |
| 真机测试 | 在任意 Telegram 客户端点击按钮或 t.me/yourbot?start=xxxx 打开 Web App。 |
| 浏览器预览 | 直接打开 https://yourdomain.com(若未嵌入 Telegram 环境,tg.initData 为空,需自行模拟)。 |
| 正式上线 | 将域名备案为 HTTPS 且支持 TLS 1.2+,在 Bot 中更新 web_app URL 为正式地址。 |
3️⃣ 关键区别汇总(概念层面)
| 维度 | 微信小程序 | Telegram 小程序 |
|---|---|---|
| 技术栈 | 专属的 WXML/WXSS + JS(或编译框架) | 标准 Web 前端(HTML/CSS/JS) |
| 运行环境 | 微信自研 Runtime,沙箱化、受限 | Telegram 客户端内嵌 Chromium WebView,基本与普通浏览器相同 |
| 生态入口 | 微信内部(搜索、扫一扫、公众号等) | Bot 按钮、链接、深度链接(t.me/...) |
| 原生能力 | 丰富的微信专有 API(支付、卡券、直播、AR 等) | 通过 Bot API 调用 Telegram 功能,Web App 本身只能使用浏览器能力 |
| 审核流程 | 必须通过微信官方审核 | 只要 Bot 本身通过审核(若涉及支付),Web App 无需额外审查 |
| 发布与更新 | 版本号 + 审核后发布,可灰度、回滚 | 直接更新 Web 站点,实时对所有用户生效 |
| 用户身份 | openid + unionid(跨平台) | user_id(Telegram UID) + initData 中的签名 |
| 支付 | 微信支付(需要商户号、企业资质) | Telegram Payments(通过 Bot,支持 Stripe、PayPal、其它 PSP) |
| 分发渠道 | 受限于微信生态 | 任意 Telegram 渠道(群、频道、个人聊天) |
| 数据存储 | 微信云开发或自建服务器 | 完全自建后端(可使用任何数据库、云服务) |
| 国际化 | 国内用户为主,海外需要备案 | 天然全球化,Telegram 在 200+ 国家都有活跃用户 |
| 学习曲线 | 需要掌握专有语法和工具 | 与普通 Web 开发一致,学习成本低 |
4️⃣ 开发者常见疑问与最佳实践
4️⃣1 微信小程序
| 问题 | 建议 |
|---|---|
| 页面卡顿 | – 使用 分包(subpackages)减少首屏体积。– 避免一次性渲染大量列表,使用 wx:for + virtual-list。 |
| 接口调用被拦 | – 确认 业务域名 已在「微信公众平台 → 开发 → 服务器域名」完成备案。 – 请求头 content-type 必须是 application/json 或 application/x-www-form-urlencoded。 |
| 获取用户手机号 | 必须先调用 wx.getPhoneNumber,用户同意后返回加密数据,后端使用 session_key 解密。 |
| 使用第三方 UI | 推荐 Vant‑Weapp、NutUI,但在发布前请检查是否有未被微信审查的 API(如 WebGL)。 |
| 调试支付 | 使用 微信支付沙箱(pay.weixin.qq.com),在 app.json 中配置 debug:true,并在后台开启「沙箱模式」。 |
4️⃣2 Telegram 小程序
| 问题 | 建议 |
|---|---|
无法获取 initData | 确认 Web App URL 已在 Bot 的 WebAppInfo 中配置,并且打开方式是 Telegram 内部(不是直接浏览器)。 |
| 签名校验不通过 | – 使用 Bot Token(不包括 : 前面的部分)作为 HMAC 密钥。– 确保在服务器端使用 UTF‑8 编码的原始 initData 字符串进行签名。 |
| 键盘弹起导致布局错位 | 监听 Telegram.WebApp.onEvent('viewportChanged', ...),获取 viewportHeight 与 viewportStableHeight,动态调整容器高度。 |
| 支付失败 | – 检查 Bot 是否已通过 Telegram Payments 审核。 – price_label 与 price_amount 必须匹配 Bot 后端的订单金额。 |
| 跨域资源受限 | 虽然 WebView 支持任意 CORS,但仍建议在服务器端返回 Access-Control-Allow-Origin: *(或具体域名),避免在移动端出现 blocked by CORS policy。 |
| 使用第三方库 | 大多数库(如 axios, lodash, moment) 均可直接使用,但注意 体积:Telegram 会自动限制 Web App 的最大文件大小(约 5 MB),建议开启代码分割或使用 CDN。 |
5️⃣ 从微信迁移到 Telegram(如果你已经有小程序)
| 步骤 | 说明 |
|---|---|
| 1. 重新规划 UI | 将 WXML/WXSS 转换为标准 HTML/CSS,利用 rpx → vw/vh 或 rem 替代。 |
| 2. 抽离业务层 | 将所有业务逻辑(数据请求、状态管理)抽离到 Service 层,既可以在微信使用 wx.request,也可以在 Telegram 使用 fetch。 |
| 3. 替换身份体系 | – 微信 openid → Telegram user_id。– 将登录流程改为 Telegram Web App initData 验证。 |
| 4. 替换支付 | – 微信支付 → Telegram Payments(Bot 端实现 sendInvoice)。– 前端改为 tg.showInvoice(invoice)。 |
| 5. 替换原生能力 | – 微信定位、相机等 → 使用浏览器原生 API(navigator.geolocation、MediaDevices.getUserMedia),或通过 Bot 让用户在聊天中发送位置/照片。 |
| 6. 部署 & 域名 | 迁移到 HTTPS 服务器(推荐使用 Cloudflare, Vercel, Netlify),并在 Bot 中更新 web_app URL。 |
| 7. 测试 | 使用 ngrok 进行实时调试,确保 initData 校验通过、支付流程可用、界面在不同 Telegram 客户端(iOS、Android、Desktop)表现一致。 |
| 8. 发布 | 完成后直接更新 Web 站点,无需再次审核。可通过 Bot 发送更新通知或在原小程序中放置跳转链接。 |
小技巧:如果你希望保持同一套代码库,可以使用 跨平台框架(如 React + Taro):
- Taro 支持 微信小程序 编译,也支持 Web(即 Telegram Web App)。
- 只需在
config/index.js中切换mini(微信)和h5(Telegram)两套编译目标,业务代码保持不变。
6️⃣ 推荐学习资源
| 平台 | 资源 | 链接 |
|---|---|---|
| 微信小程序 | 官方文档、快速入门、组件库 | https://developers.weixin.qq.com/miniprogram/dev/framework/ |
| 微信云开发(Serverless) | https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/ | |
| Taro 多端框架 | https://taro-docs.jd.com/taro/docs/ | |
| Telegram Web App | 官方 Web App SDK 文档 | https://core.telegram.org/bots/webapps |
| Bot API 参考(支付、回调) | https://core.telegram.org/bots/api | |
| 示例项目(GitHub) | https://github.com/TelegramBots/Telegram.WebApp.Examples | |
| 跨平台 | UniApp(可输出微信 + H5) | https://uniapp.dcloud.io/ |
| React Native Web + 微信小程序插件 | https://github.com/Tencent/uni-app |
7️⃣ 小结
- 技术栈:微信 → 专属标记语言;Telegram → 标准 Web。
- 能力边界:微信原生 API 更丰富(支付、卡券、直播等),Telegram 依赖 Bot API 进行扩展。
- 发布流程:微信需要审查,Telegram 只要 Bot 合规即可即时上线。
- 国际化:Telegram 天生跨境,微信生态主要在中国。
- 学习曲线:如果你已有前端经验,Telegram 小程序上手更快;如果你想深入微信生态并利用其强大的原生能力,必须学习其专有框架。
希望这份对比能帮助你快速判断哪条路线更适合你的业务需求,或在迁移/多端开发时提供明确的实现指引。祝开发顺利 🚀!
by gpt-oss:120b
如何选择一个数字出版适用的chatui
设计风格上我很喜欢https://chatui.io/,但是它是react的,我的vue3项目没法直接用,虽然可以用跨框架方案https://github.com/gloriasoft/veaury来集成,但这显然更适用于直接使用现有组件,而不是需要继续改造的情景。
还有一个风格和更新活跃度上都不错的是https://deepchat.dev/,但是经过一番研究,这个项目是完全基于web components的,虽然兼容性很好,可以同时用于vue和react等,但是为我的vue适配扩展显得依然比较繁重,短期内我没有这么多精力去维护。
再退一步来说,https://github.com/advanced-chat/vue-advanced-chat其实是个不错的方案,但近期更新较少,我担心后续维护有问题,不能继续吸血社区。另外,其中一些命名偏传统即时通讯概念,而不是面向AI,当然,功能上倒是没问题。
还有一个https://github.com/pdsuwwz/chatgpt-vue3-light-mvp实现了多种消息内容的适配,比如 markdown-it Mermaid/KaTex/LaTex 公式等,这是我想在对话中扩展的类型,但这个项目并没有封装为一个可插入的组件。
最终,我想在vue-advanced-chat的基础上,参考chatgpt-vue3-light-mvp的一些消息类型的扩展方式,做一个自定义的vue-advanced-chat组件。
国产替代5k屏最佳使用方案
所谓国产替代5k屏指的是号称平替戴尔和LG等一线产品的国产显示器,不管其声称用的是多么好的面板,多半是京东方的,京东方产量其实很不小,只是品质可能差一些,但也能用,差距应该没有多大,主要差别在于显示器主板做工,平替要是打开看的话是一眼就知道是平替,至于摄像头、光感、音响,为了价钱,都是可以舍弃的。
之所以说能替,在于配置得当还是可以用的,记住以下要点:
- 首先要确认接5k屏的电脑要够强大,我用的是m2 max,刷新率可以干到120Hz,但为了省电,我选择了设置60Hz,同时,也避免可能会发生的闪屏。
- 显示器最好接一个带开关的插座,不用的时候直接关插座上的开关断电,不要用待机自动熄屏,否则恢复的时候可能会闪屏。
- 显示器设置为p3色彩模式,显示效果和mac的屏很接近了,当然,修图不算,主要说的是针对一般的软件开发。如果是修图,本身有一个macbook pro的原装屏作为对照,也好看一看普通人显示出来是什么效果。在这个模式下,其他很多参数就已经固化了,不用再去设置。
- 主机用macbook的话,把内建显示器的原彩显示关掉,自动亮度可以不关,因为这外接替代屏本身也不会同步亮度,影响不大。主机还建议把锁定屏幕中的“使用电源适配器供电且不活跃时关闭显示器”设置为“永不”或者设置成两三个小时,否则再起来的时候外接显示器也会闪屏(不是一直闪,是亮起之后偶尔会闪一下),养成手动断电的好习惯。
- 主机最好不用显示器的反向充电,毕竟macbook的原装充电器比显示器里内置的那个劣质产品要好多了。
完成以上设置,就可以舒舒服服的使用了。
建议的开机顺序:
- 打开macbook
- 打开显示器电源(插上type-c到macbook,如果没插的话)
- 合上macbook(如果只想用外接屏的话)
建议的关机顺序
- 断开显示器电源
- 合上macbook
我找到了可用的debian镜像地址
https://www.debian.org/CD/http-ftp/#mirrors
官网,哈哈哈
其中有两个中国镜像,我用的第一个。
今天build了一天,终于让我解决了,用全局代理都没有解决问题,为啥呢。
我的新开发环境硬件组合
macbook pro m2 max 96G 2T+星华辰UP40R2(5120×2160,120hz,最高144hz,但接我这个笔记本只有120)
显示器设置色彩模式为DCIP3,色彩已经很接近苹果的屏幕了。
注意如果开盖使用,外接屏幕有可能会发黄/暖,那是因为mac开了原彩显示,关掉即可,内外屏的色彩就基本上一致了。
另外,如果外接屏幕支持亮度同步,比如明基,也需要关闭自动亮度,明基官网是这么说的。
想了解更多细节,可以留言评论。
macos微信双开方法2025
命令如下:
1、复制微信应用:
sudo cp -R /Applications/WeChat.app /Applications/WeChat2nd.app
2、修改 Bundle ID:
sudo /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.tencent.WeChat2nd" /Applications/WeChat2nd.app/Contents/Info.plist
3、重新签名应用:
sudo codesign --force --deep --sign - /Applications/WeChat2nd.app
docker registry-mirrors 2025-08-22
{ "registry-mirrors": [ "https://docker.1ms.run" ] }
/etc/docker/daemon.json