电报上有哪些知名的数字阅读应用?

下面整理了一批在 Telegram(电报) 平台上比较活跃、口碑不错的 数字阅读类 机器人(Bot)和频道(Channel),按功能划分,便于你快速挑选使用。

⚠️ 版权提示

  1. 许多 Bot 提供的书籍、漫画、论文等资源并非官方授权,存在版权风险。使用时请自行判断合法性,尽量优先关注官方出版社、作者或已取得授权的渠道。
  2. 为了保护账号安全,建议只在信任的 Bot里发送个人信息,避免点击陌生 Bot 发来的外部链接(尤其是 .exe、.apk 等可执行文件)。

1️⃣ 电子书(E‑Book)类

名称 / BotTelegram 用户名内容特色语言/地区主要功能备注
📚 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针对视障人士的有声书、可访问电子书英文提供 DAISYMP3 版阅读材料需先在 Bot 中完成注册(免费)

使用示例(以 @bookbot 为例)

/search <关键词>        # 如:/search Pride and Prejudice
/list <分类>            # 如:/list science-fiction
/download <书籍ID>      # Bot 会返回文件或下载链接

2️⃣ 有声书 / 播客(Audiobook / Podcast)类

名称 / BotTelegram 用户名内容特色语言/地区主要功能备注
🎧 AudioBook Bot@audiobook_bot经典文学、有声小说、语言学习材料英文按章节分段推送 MP3,支持 离线缓存资源多为公有领域或自制朗读
📚 Storytel Bot(官方)@storytel_botStorytel 订阅平台的官方 Bot多语言(英、瑞、挪)登录后可直接在 Telegram 中播放有声书,支持 书签需要付费订阅
🗣️ Learn English Podcast@englishpodcastbot英语学习为核心的短篇播客英文每日推送 5‑10 分钟学习材料,配有文字稿适合学习者
🎧 Radio Bot@radio_bot全球电台、播客、新闻音频流多语言按国家/主题搜索,返回 流媒体链接(m3u8)只提供流媒体,不保存文件

3️⃣ 漫画 / 漫画阅读(Manga / Comic)类

名称 / BotTelegram 用户名内容特色语言/地区主要功能备注
📚 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)类

名称 / BotTelegram 用户名内容特色语言/地区主要功能备注
📰 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)类

名称 / BotTelegram 用户名内容特色语言/地区主要功能备注
📚 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️⃣ 语言学习 / 电子教材类

名称 / BotTelegram 用户名内容特色语言/地区主要功能备注
🈚️ Duolingo Bot(官方)@duolingo_botDuolingo 官方练习提醒 + 词库推送多语言每日学习任务、单词卡片、听力练习需绑定 Duolingo 账号
📚 电子教材频道@e_textbooks(Channel)中小学教材、大学公开课 PDF中文按学段、学科分类下载大多数为 公开版权 教材
🗣️ LinguaBot@linguabot句子听写、词汇测验、短文朗读多语言交互式练习,支持 Telegram 语音 发送答案适合自学者
📖 经典文学学习 Bot@classic_reading_bot提供 分章节朗读 与 原文对照(英、法、德)多语言发送章节号 → 返回 MP3 与 原文兼具阅读与听力练习

7️⃣ 如何快速发现更多阅读 Bot / 频道

  1. 使用 Telegram 内置搜索
    • 在聊天列表左上角点 放大镜 → 输入关键词如 “电子书”“漫画”“paper”“audio book”。
    • 搜索结果会显示 BotChannelGroup,挑选带有 Verified(已验证) 标记的更可靠。
  2. 利用第三方目录网站
  3. 加入相关社区
    • Telegram 中文阅读社区(如 @tgbkreading)经常分享新 Bot。
    • Reddit / r/TelegramBotsGitHub 项目也会公布开源 Bot 源码,便于自行部署或自行审计。
  4. 关注官方出版社 / 作者账号
    • 如 Penguin BooksHarperCollins中国出版集团 等会在 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 SDKwindow.Telegram.WebApp)进行交互。
开发工具– 微信开发者工具(IDE)
– CLI(miniprogram-ci
– 可在 VS Code 中通过插件调试
– 任意编辑器(VS Code、WebStorm 等)
– 通过 Telegram Bot API 配置 web_app 按钮
– 可使用 ngrok/自有域名调试实时预览
后端交互– 通过 wx.requestwx.cloud(云函数)
– 支持 WebSocketwx.connectSocket
– 受限于同源策略,需走微信的 HTTPS 域名白名单
– 完全自由的 fetch / XMLHttpRequest(只要符合 Telegram 要求的 HTTPS
– 推荐使用 Telegram Bot API 与 Bot 进行双向通信(sendData / onEvent
身份认证– wx.login → 获取 code → 服务器换取 session_key + openid
– 支持 手机号微信支付等安全接口
– window.Telegram.WebApp.initData 包含用户信息(idfirst_namelast_nameusernamephoto_urlauth_datehash
– 通过 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️⃣ 微信小程序的核心开发流程(快速回顾)

  1. 注册小程序账号 → 在微信公众平台开通小程序。
  2. 创建项目 → 使用 微信开发者工具,选择“新建小程序”。
  3. 目录结构(典型)├─ pages/ │ ├─ index/ │ │ ├─ index.wxml │ │ ├─ index.wxss │ │ ├─ index.js │ │ └─ index.json ├─ utils/ ├─ app.js ├─ app.json └─ app.wxss
  4. 声明页面app.json 中 pages 数组。
  5. 页面渲染WXML + WXSS → 类 React 的 data‑binding ({{variable}})。
  6. 业务代码:在 *.js 中使用 PageAppComponent 构造函数。
  7. 调用微信原生能力wx.xxx(如 wx.getLocationwx.uploadFilewx.pay).
  8. 云开发(可选)wx.cloud → 云函数、数据库、文件存储一键部署。
  9. 测试
    • 模拟器(微信开发者工具)
    • 真机预览(扫码或二维码)
    • 调试面板(Network、Console、Performance)
  10. 提交审核 → 填写业务信息、隐私政策、上传代码。
  11. 发布 → 审核通过后上线,后续可通过 版本管理 进行灰度或回滚。

关键点

  • 域名白名单:所有 wx.requestwx.uploadFile 必须走已在「业务域名」中备案的 HTTPS 域名。
  • 尺寸适配:使用 rpx(相对像素)进行 UI 适配,1rpx = 1/750 屏幕宽度。
  • 安全审计:小程序不允许执行 evalnew Function 等动态代码。

2️⃣ Telegram 小程序(Web App)的核心开发流程

2.1 注册 Bot 并开启 Web App 支持

  1. 与 @BotFather 对话 → /newbot 创建 Bot。
  2. 获取 Bot Token
  3. 通过 BotFather 或 Bot API 设置 Web App URLsetChatMenuButtonsetMyCommandssetInlineKeyboardButton 的 web_app 字段)。
  4. (可选)开启 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_colortext_colorhint_color等),可用于 UI 适配。
colorScheme'light' / 'dark'
viewportHeight / viewportStableHeight可视区高度(键盘弹起前后),用于动态布局。
isExpandedexpand()close()控制 Web App 的展开/收起状态。
showAlert(text)showConfirm(text)showPopup(params)调用原生弹窗。
showInvoice(invoice)调起 Telegram 支付(需要 Bot 配置)。
sendData(data)将字符串发送回 Bot(Bot 收到 callback_query 的 data字段)。
onEvent(event, callback)监听 themeChangedviewportChangedbackButtonClicked 等事件。

安全提醒:所有从 initData 中得到的用户信息(idusername 等)必须在服务器端通过 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‑WeappNutUI,但在发布前请检查是否有未被微信审查的 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
使用第三方库大多数库(如 axioslodashmoment) 均可直接使用,但注意 体积: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.geolocationMediaDevices.getUserMedia),或通过 Bot 让用户在聊天中发送位置/照片。
6. 部署 & 域名迁移到 HTTPS 服务器(推荐使用 CloudflareVercelNetlify),并在 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等一线产品的国产显示器,不管其声称用的是多么好的面板,多半是京东方的,京东方产量其实很不小,只是品质可能差一些,但也能用,差距应该没有多大,主要差别在于显示器主板做工,平替要是打开看的话是一眼就知道是平替,至于摄像头、光感、音响,为了价钱,都是可以舍弃的。

之所以说能替,在于配置得当还是可以用的,记住以下要点:

  1. 首先要确认接5k屏的电脑要够强大,我用的是m2 max,刷新率可以干到120Hz,但为了省电,我选择了设置60Hz,同时,也避免可能会发生的闪屏。
  2. 显示器最好接一个带开关的插座,不用的时候直接关插座上的开关断电,不要用待机自动熄屏,否则恢复的时候可能会闪屏。
  3. 显示器设置为p3色彩模式,显示效果和mac的屏很接近了,当然,修图不算,主要说的是针对一般的软件开发。如果是修图,本身有一个macbook pro的原装屏作为对照,也好看一看普通人显示出来是什么效果。在这个模式下,其他很多参数就已经固化了,不用再去设置。
  4. 主机用macbook的话,把内建显示器的原彩显示关掉,自动亮度可以不关,因为这外接替代屏本身也不会同步亮度,影响不大。主机还建议把锁定屏幕中的“使用电源适配器供电且不活跃时关闭显示器”设置为“永不”或者设置成两三个小时,否则再起来的时候外接显示器也会闪屏(不是一直闪,是亮起之后偶尔会闪一下),养成手动断电的好习惯。
  5. 主机最好不用显示器的反向充电,毕竟macbook的原装充电器比显示器里内置的那个劣质产品要好多了。

完成以上设置,就可以舒舒服服的使用了。

建议的开机顺序:

  1. 打开macbook
  2. 打开显示器电源(插上type-c到macbook,如果没插的话)
  3. 合上macbook(如果只想用外接屏的话)

建议的关机顺序

  1. 断开显示器电源
  2. 合上macbook

我的新开发环境硬件组合

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

来源:https://www.bilibili.com/video/BV1xiLbzLECp/

截至目前最好用的語音轉文字方案依然是aadnk/faster-whisper-webui

地址:https://huggingface.co/spaces/aadnk/faster-whisper-webui

對比了幾個更新一點的方案,有的增加了隊列和資源可視化,但是效率比較低,尤其是沒有優化顯存佔用,比如https://github.com/jhj0517/Whisper-WebUI,使用v3模型時需要25G顯存,我的3090還跑不起來了,而且並不支持詞級標註。

爲了更方便的使用aadnk/faster-whisper-webui,可以在其文件目錄中增加一個docker-compose.yml

services:
  faster-whisper:
    image: registry.gitlab.com/aadnk/whisper-webui:latest
    container_name: faster-whisper
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    ports:
      - "7001:7860"
    volumes:
      - ./cache/whisper:/root/.cache/whisper
      - ./cache/huggingface:/root/.cache/huggingface
    restart: on-failure:15
    environment:
      - HTTP_PROXY=http://192.168.1.200:16236
      - HTTPS_PROXY=http://192.168.1.200:16236
      - NO_PROXY=localhost,127.0.0.1,::1
    command: >
      app.py
      --whisper_implementation whisper
      --input_audio_max_duration -1
      --server_name 0.0.0.0
      --auto_parallel True
      --default_vad silero-vad
      --default_model_name large-v2

注意其中的large-v2也可以改爲large-v3,最新版已經支持。另外,HTTP_PROXY相關設置是爲了啓動時通過代理訪問gradio,否則會啓動失敗,通過environment來設置代理的方式比較靈活,不會影響其他docker容器,詳細情況參加我前面一篇博客。

在 Ubuntu 系統中設置代理:網絡連接、Shell 和 Docker 的配置方法與影響範圍

在 Ubuntu 系統中設置代理:網絡連接、Shell 和 Docker 的配置方法與影響範圍在 Ubuntu 系統中,設置代理是常見的需求,特別是在企業網絡環境或需要訪問特定資源時。本文將詳細介紹如何在 Ubuntu 的網絡連接、Shell 環境以及 Docker 中設置代理,並闡述它們的影響範圍和注意事項。無論你是普通用戶還是開發者,這篇博客都能幫助你清晰理解代理配置的邏輯與實操。


1. 為什麼需要分別配置代理?在 Ubuntu 中,代理設置的應用範圍因環境而異:

  • 系統網絡設置:適用於圖形界面應用程序(如瀏覽器、某些 GUI 工具),由系統的網絡管理工具(如 NetworkManager)控制。
  • Shell 環境:命令行工具(如 curl、wget、apt)依賴環境變量或專屬配置文件,獨立於系統代理設置。
  • Docker:Docker 引擎(dockerd)和容器內的命令有各自的代理配置,分別影響鏡像拉取和 Dockerfile 中的網絡操作。

由於這些環境的網絡棧相互獨立,代理設置不會自動共享,因此需要在每個環境中單獨配置。


2. 配置系統網絡代理方法Ubuntu 的圖形界面(如 GNOME)允許通過設置應用程序配置全局代理,影響支持系統代理的應用(如 Firefox、Chrome)。

  1. 打開網絡設置:
    • 打開「設置」 > 「網絡」 > 「網絡代理」。
    • 選擇代理類型(如 HTTP、HTTPS、SOCKS)並輸入代理服務器地址和端口。
    • 如果需要認證,填入用戶名和密碼。
  2. 命令行配置(適用於無 GUI 環境):
    • 編輯 /etc/environment,添加全局代理設置:bashsudo nano /etc/environment添加:http_proxy="http://proxy_server:port" https_proxy="http://proxy_server:port" ftp_proxy="http://proxy_server:port" no_proxy="localhost,127.0.0.1,::1"
    • 保存後,登出或重啟使設置生效。
  3. NetworkManager CLI 工具(nmcli): 如果使用 NetworkManager,可以通過命令行設置代理:bashnmcli connection modify <connection_name> proxy.method manual nmcli connection modify <connection_name> proxy.http http://proxy_server:port nmcli connection modify <connection_name> proxy.https http://proxy_server:port查看當前連接名稱:bashnmcli connection show

影響範圍

  • 適用:圖形界面的應用程序(如瀏覽器、某些更新工具)。
  • 不適用:Shell 環境中的命令行工具(如 curl、apt)和 Docker 引擎。

注意事項

  • 系統代理設置不影響命令行工具,因為它們不直接讀取 NetworkManager 或 GSettings 的配置。
  • 如果代理需要認證,確保格式為 http://username:password@proxy_server:port。

3. 配置 Shell 環境代理Shell 環境中的命令行工具(如 curl、wget、apt)依賴環境變量或專屬配置文件來使用代理。方法3.1 臨時設置(僅當前會話)在 Shell 中設置環境變量:

bash

export http_proxy="http://proxy_server:port"
export https_proxy="http://proxy_server:port"
export ftp_proxy="http://proxy_server:port"
export no_proxy="localhost,127.0.0.1,::1"

這些設置僅對當前 Shell 會話有效,關閉終端後失效。3.2 全局設置將環境變量添加到 Shell 配置文件(如 ~/.bashrc 或 ~/.zshrc):

bash

echo 'export http_proxy="http://proxy_server:port"' >> ~/.bashrc
echo 'export https_proxy="http://proxy_server:port"' >> ~/.bashrc
echo 'export ftp_proxy="http://proxy_server:port"' >> ~/.bashrc
echo 'export no_proxy="localhost,127.0.0.1,::1"' >> ~/.bashrc

使配置生效:

bash

source ~/.bashrc

或者,編輯 /etc/environment(影響所有用戶):

bash

sudo nano /etc/environment

添加:

http_proxy="http://proxy_server:port"
https_proxy="http://proxy_server:port"
ftp_proxy="http://proxy_server:port"
no_proxy="localhost,127.0.0.1,::1"

3.3 特定工具配置某些工具需要獨立配置代理:

  • APT: 創建或編輯 /etc/apt/apt.conf.d/proxy.conf:bashsudo nano /etc/apt/apt.conf.d/proxy.conf添加:Acquire::http::Proxy "http://proxy_server:port"; Acquire::https::Proxy "http://proxy_server:port";
  • curl: 在命令行指定:bashcurl --proxy http://proxy_server:port http://example.com或在 ~/.curlrc 中設置:bashecho "proxy = http://proxy_server:port" >> ~/.curlrc
  • wget: 在 ~/.wgetrc 中設置:bashecho "http_proxy = http://proxy_server:port" >> ~/.wgetrc echo "https_proxy = http://proxy_server:port" >> ~/.wgetrc echo "use_proxy = on" >> ~/.wgetrc

3.4 使用 proxychains(可選)對於不支持環境變量的工具,可以使用 proxychains:

  • 安裝:bashsudo apt install proxychains
  • 編輯 /etc/proxychains.conf,添加代理:http proxy_server port
  • 運行命令:bashproxychains curl http://example.com

影響範圍

  • 適用:大多數命令行工具(如 curl、wget),但需要工具支持環境變量或有自己的配置文件。
  • 不適用:Docker 引擎的網絡操作(如拉取鏡像)或 Dockerfile 中的命令,除非顯式傳遞。

注意事項

  • 環境變量大小寫敏感,建議同時設置小寫和大寫(如 http_proxy 和 HTTP_PROXY)。
  • 臨時禁用代理:bashunset http_proxy https_proxy

4. 配置 Docker 代理Docker 的代理設置分為兩部分:Docker 引擎(影響鏡像拉取)和容器內部(影響 Dockerfile 的 RUN 命令)。方法4.1 配置 Docker 引擎代理(用於拉取鏡像)Docker 引擎負責從倉庫(如 Docker Hub)下載鏡像,其代理設置獨立於 Shell 和系統代理。

  • 編輯 /etc/docker/daemon.json:json{ "proxies": { "http-proxy": "http://proxy_server:port", "https-proxy": "http://proxy_server:port", "no-proxy": "localhost,127.0.0.1,::1" } }
  • 重啟 Docker 服務:bashsudo systemctl restart docker
  • 驗證:bashdocker info --format '{{.HTTPProxy}}'

4.2 配置容器內代理(用於 Dockerfile 的 RUN 命令)Dockerfile 中的 RUN 命令運行在臨時容器中,默認不繼承宿主機的代理設置。

  • 方法 1:在 Dockerfile 中設置:dockerfileFROM ubuntu:20.04 ENV http_proxy=http://proxy_server:port ENV https_proxy=http://proxy_server:port RUN apt-get update && apt-get install -y curl # 清理代理設置(安全考慮) ENV http_proxy="" ENV https_proxy=""
  • 方法 2:通過 docker build 傳遞: 如果 Shell 已設置 http_proxy 等變量,可以在構建時傳遞:bashdocker build \ --build-arg http_proxy=$http_proxy \ --build-arg https_proxy=$https_proxy \ --build-arg no_proxy=$no_proxy \ -t myimage .
  • 方法 3:為特定工具配置(如 APT): 在 Dockerfile 中為 apt 配置代理:dockerfileRUN echo 'Acquire::http::Proxy "http://proxy_server:port";' > /etc/apt/apt.conf.d/proxy.conf RUN echo 'Acquire::https::Proxy "http://proxy_server:port";' >> /etc/apt/apt.conf.d/proxy.conf RUN apt-get update

影響範圍

  • Docker 引擎代理:影響 docker pull 和 docker build 中的鏡像拉取。
  • 容器內代理:影響 Dockerfile 中 RUN 命令的網絡操作(如 apt-get、curl)。
  • 不適用:Shell 的 http_proxy 不會自動影響 Docker,除非通過 –build-arg 或 Dockerfile 傳遞。

注意事項

  • 如果代理需要認證,格式為 http://username:password@proxy_server:port。
  • 在 Dockerfile 中設置代理後,建議在構建結束時清理環境變量以避免泄露。
  • proxychains 不推薦用於 Docker,因其對容器內部行為影響有限。

5. 驗證代理配置

  • 系統代理: 使用瀏覽器訪問外部網站,檢查是否通過代理。
  • Shell 代理:bashenv | grep -i proxy curl -I http://example.com
  • Docker 引擎代理:bashdocker pull hello-world
  • 容器內代理: 在 Dockerfile 中添加測試命令:dockerfileRUN curl -I http://example.com

6. 總結與最佳實踐配置總結

  • 系統網絡代理:適用於 GUI 應用,通過設置或 /etc/environment 配置。
  • Shell 代理:通過環境變量或工具特定配置文件設置,影響命令行工具。
  • Docker 代理:
    • Docker 引擎:配置 /etc/docker/daemon.json,影響鏡像拉取。
    • 容器內:通過 Dockerfile 或 –build-arg 設置,影響 RUN 命令。

最佳實踐

  1. 分環境配置:根據需求分別設置系統、Shell 和 Docker 代理,避免依賴單一配置。
  2. 安全性:在 Dockerfile 中清理代理設置,避免敏感信息泄露。
  3. 靈活性:使用 –build-arg 動態傳遞代理,適應不同環境。
  4. 驗證:每次配置後測試代理是否生效,確保網絡行為符合預期。

通過以上方法,你可以在 Ubuntu 中靈活配置代理,滿足不同場景的網絡需求。希望這篇博客能為你的代理設置提供清晰的指導!

from:grok

ps:要想從grok裏面整體複製以上內容還要想一點特殊的辦法,否則容易被截斷或者丟失格式。方法如下:打開瀏覽器的調試窗口,選中回復內容的區塊,編輯HTML,全選其中的代碼並複製,然後粘貼到wordpress的編輯窗口中,注意直接粘貼即可,wordpress的編輯窗口對輸入的html會進行自動處理。