🚀 Get daily Bing wallpapers and push them to your chat platforms via webhooks — extensible to more providers.
Bing-Wallpaper 是一个自动获取必应每日壁纸(Bing Daily Wallpaper),并通过可配置的 webhook 推送到你的聊天平台(如飞书 / 钉钉 / 企业微信 / Slack 等),支持扩展更多推送适配器。
支持定时运行,自动下载壁纸并推送(含图片与描述),也可按需触发。
- Python 3.12+
- 目标通知平台的机器人 Webhook 或 Token
推荐使用
uv来创建隔离的虚拟环境并安装依赖
使用 uv
# 创建全新虚拟环境
uv venv --python 3.12 --seed .venv
# 激活虚拟环境
# Linux / macOS (bash / zsh)
source .venv/bin/activate
# Windows - PowerShell
.venv\Scripts\Activate.ps1
# Windows - cmd.exe
.venv\Scripts\activate.bat
# 在虚拟环境中安装依赖(如果 uv pip 已可用)
uv pip install -r requirements.txt
使用传统方法(venv + pip)
python3.12 -m venv .venv
# 激活虚拟环境
source .venv/bin/activate # Linux / macOS
.venv\Scripts\Activate.ps1 # Windows PowerShell
.venv\Scripts\activate.bat # Windows cmd
# 安装依赖
pip install -r requirements.txt说明:使用
python3.12 -m venv可以保证虚拟环境与指定解释器绑定(推荐在多 Python 版本机器上显式指定python3.12)。
使用 .env 或配置文件设置各平台的 Webhook/Token、Bing API 等。详见下方“配置详解(环境变量)”。
python main.py可通过命令行参数选择只推送到某个平台或全部推送(请参考项目中的 CLI/入口实现)。
构建镜像并运行:
docker build -t bing-wallpaper .
docker run -d --name bing-wallpaper --env-file .env bing-wallpaper说明:确保
.env中填写了你的 webhook 等敏感配置,且不要把.env提交到公共仓库。
仓库支持通过 CI/CD 运行或定时触发:
- GitHub Actions:可在
.github/workflows/中添加 workflow,并使用 GitHub 的 scheduled triggers(cron)来定时运行。 - GitLab CI:注意:GitLab 的 pipeline schedule(定时触发)需要在 GitLab 的 Web UI 中配置(
CI/CD → Schedules),不能仅通过.gitlab-ci.yml在仓库内声明 cron。请在项目设置中创建 Schedule 并指向目标分支/变量。
| 渠道 | 类型 | 备注 |
|---|---|---|
| 🪁 飞书(Feishu) | 自定义机器人 / App | 支持文本 + 图片(支持 AppId/Secret 签名等) |
| 🐬 钉钉(Dingtalk) | Webhook 机器人 | 支持文本 + 图片(支持签名) |
| 💼 企业微信(WeCom) | Webhook / Agent | 支持群聊或个人 |
| 🎨 Slack | Incoming Webhook | 支持文本 + 图片 |
Bing-Wallpaper/
├── .github/ # CI / Actions
├── config/ # 配置文件
├── feishu/ # 飞书推送模块
├── dingtalk/ # 钉钉推送模块
├── wecom/ # 企业微信推送模块
├── slack/ # Slack 推送模块
├── wallpaper/ # 获取壁纸
├── main.py # 主入口
├── requirements.txt # 依赖
└── Dockerfile # Docker 支持
请在 .env 或 CI Secret 中添加以下变量,下面列出完整变量清单:
FEISHU_APP_ID=
FEISHU_APP_SECRET=
FEISHU_WEBHOOK_URL=
FEISHU_SIGNING_KEY=
DINGTALK_WEBHOOK_URL=
DINGTALK_SIGNING_KEY=
WECOM_WEBHOOK_URL=
SLACK_WEBHOOK_URL=
说明与使用建议
FEISHU_APP_ID/FEISHU_APP_SECRET:用于通过飞书开放平台获取 access_token(若你使用 App 授权方式)FEISHU_WEBHOOK_URL/FEISHU_SIGNING_KEY:用于自定义机器人推送(Webhook + 签名)DINGTALK_WEBHOOK_URL/DINGTALK_SIGNING_KEY:用于钉钉机器人推送(签名可防止未授权调用)。WECOM_WEBHOOK_URL:企业微信机器人SLACK_WEBHOOK_URL:Slack Incoming Webhook 地址
建议:把这些敏感变量放到 CI 的 secret 管理(GitHub Secrets / GitLab CI Variables / Docker Secrets)或使用环境管理器,不要把
.env提交到仓库。
欢迎贡献代码 / 提交 Issue / Pull Request!
- 提交 PR 前请确保代码风格一致。
- 新增功能请附带必要的文档或配置说明。
- 如涉及敏感凭证,请使用 GitHub Secrets 或 CI 的安全变量,不要提交到仓库。
本项目采用 MIT License,详见 LICENSE 文件。
- 📷 必应(Bing)的每日壁纸 API
- 🔔 Slack, Feishu, Dingtalk, WeCom 提供的机器人推送接口
- 💡 本项目所有贡献者