Wecom(A.K.A. WeChat Work) Group Bot python API.
Project description
pywgb
Wecom(A.K.A. WeChat Work) Group Bot python API.
Homepage
ChowRex/pywgb: Wecom(A.K.A Wechat Work) Group Bot python API.
How to use
-
Create a Wecom Group Bot.
-
Copy the webhook URL or just the
key. It MUST contains an UUID (8-4-4-4-12), like:Webhook: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=UUIDKey: UUID
-
Install this package:
# Normally use this if you won't send voice message pip install -U pywgb # You can install full version by this pip install -U "pywgb[all]"
-
If you want to send simple messages, refer code below:
from pywgb import TextBot, MarkdownBot, ImageBot, NewsBot, FileBot, VoiceBot KEY = "PASTE_YOUR_KEY_OR_WEBHOOKURL_HERE" # If you want to send Text message, use this. msg = "This is a test Text message." # If you want to mention someone, refer this. kwargs = { "mentioned_list": [ # If you know the userid "userid", # Use below for ALL people "@all", ], "mentioned_mobile_list": [ # If you know the phone number "13800001111", # Use below for ALL people "@all", ] } bot = TextBot(KEY) bot.send(msg) bot.send(msg, **kwargs) # If you want to send Markdown message, use this. bot = MarkdownBot(KEY) col = [bot.green, bot.gray, bot.orange] msg = [col[idx % 3](ltr) for idx, ltr in enumerate("colorful")] msg = f"This is a {''.join(msg)} Markdown message" bot.send(msg) # If you want to send Image message, use this. file = "Path/To/Your/Image.png" or "Path/To/Your/Image.jpg" bot = ImageBot(KEY) bot.send(file_path=file) # If you want to send News message, use this. articles = [ { "title": "This is a test news", "description": "You can add description here", "url": "www.tencent.com", # Here is the link of picture "picurl": "https://www.tencent.com/img/index/tencent_logo.png" }, ] bot = NewsBot(KEY) bot.send(articles=articles) # If you want to send File message, use this. file = "Path/To/Your/File.suffix" bot = FileBot(KEY) bot.send(file_path=file) # If you want to send Voice message, use this. file = "Path/To/Your/Voice.amr" # BE ADVISED: ONLY support amr file bot = VoiceBot(KEY) bot.send(file_path=file)
-
Send template card messages (Advanced usage)
-
Upload temporary files, any kind of bot can upload file.
from pywgb import TextBot, MarkdownBot, ImageBot, NewsBot, FileBot, VoiceBot, TextCardBot, NewsCardBot KEY = "PASTE_YOUR_KEY_OR_WEBHOOKURL_HERE" # Specify your tempory file path file = "Path/To/Your/File.suffix" # Any kind of bot can upload file bot = TextBot(KEY) media_id = bot.upload(file) print(media_id)
-
TextTemplateCard(Need more detail? click here.)from pywgb import TextCardBot KEY = "PASTE_YOUR_KEY_OR_WEBHOOKURL_HERE" # Prepare the text card content kwargs = { "main_title": { "title": "Test message", "desc": "This is a test template text card message" }, "emphasis_content": { "title": "100", "desc": "No meaning" }, "quote_area": { "type": 1, "url": "https://work.weixin.qq.com/?from=openApi", "title": "Title reference", "quote_text": "Hello\nWorld!" }, "sub_title_text": "This is sub-title", "horizontal_content_list": [{ "keyname": "Author", "value": "Rex" }, { "keyname": "Google", "value": "Click to go", "type": 1, "url": "https://google.com" }], "jump_list": [{ "type": 1, "url": "https://bing.com", "title": "Bing" }], "card_action": { "type": 1, "url": "https://work.weixin.qq.com/?from=openApi", } } bot = TextCardBot(KEY) bot.send(**kwargs)
-
NewsTemplateCard(Need more detail? click here.)from pywgb import NewsCardBot KEY = "PASTE_YOUR_KEY_OR_WEBHOOKURL_HERE" # Prepare the news card content kwargs = { "source": { "icon_url": "https://wework.qpic.cn/wwpic/252813_jOfDHtcISzuodLa_1629280209/0", "desc": "This is for testing", "desc_color": 0 }, "main_title": { "title": "Test message", "desc": "This is a test template news card message" }, "card_image": { "url": "https://wework.qpic.cn/wwpic/354393_4zpkKXd7SrGMvfg_1629280616/0", "aspect_ratio": 2.25 }, "image_text_area": { "type": 1, "url": "https://work.weixin.qq.com", "title": "Welcom to use pywgb", "desc": "This is a test message", "image_url": "https://wework.qpic.cn/wwpic/354393_4zpkKXd7SrGMvfg_1629280616/0" }, "quote_area": { "type": 1, "url": "https://work.weixin.qq.com/?from=openApi", "title": "Title reference", "quote_text": "Hello\nWorld!" }, "vertical_content_list": [{ "title": "Hi, there", "desc": "Welcome to use" }], "horizontal_content_list": [{ "keyname": "Author", "value": "Rex" }, { "keyname": "Google", "value": "Click to go", "type": 1, "url": "https://google.com" }], "jump_list": [{ "type": 1, "url": "https://bing.com", "title": "Bing" }], "card_action": { "type": 1, "url": "https://work.weixin.qq.com/?from=openApi", } } bot = NewsCardBot(KEY) bot.send(**kwargs)
-
Official Docs
Only Chinese doc: 群机器人配置说明 - 文档 - 企业微信开发者中心
Roadmap
-
v0.0.1: 🎉 Initial project. Offering send
TextandMarkdowntype message. -
v0.0.2: 🖼️ Add
Imagetype message support;- Add overheat detect function and unified exception handling
-
v0.0.3: 📰 Add
Newstype message support;- Move bots into a new module:
bot
- Move bots into a new module:
-
v0.0.4: 📂 Add
Filetype message support;- Refactor
botmodule
- Refactor
-
v0.0.5: 🗣️ Add
Voicetype message support.- Refactor
decomodule - Add
verify_filedecorator - Introverted parameters check errors
- Add more content into README.md
- Refactor
-
v0.0.6: 🩹 Add
VoiceandFiletype size check. -
v0.0.7: 🗒️ Add
TextCardtype message support. -
v0.0.8: 🗃️ Add
NewsCardtype message support. -
v0.0.9: ♻️ Refactor code.
-
v0.1.0: 🔧 Fix color bug when use markdown type
-
v0.1.1: ⏺️ Refactor all code logic again, I don't like mess and complex.
-
v0.1.2: 💪 Add a SmartBot class
- Add a SmartBot class
- Enhanced
markdownbot class - Add a txt file for SmartBot testing
Filetype - Add empty message verify for Text and Markdown
- Add a new markdown test unit
- Fully test SmartBot class
-
v1.0.0: 👍 First FULL capacity stable version release.Fix bugs and so on.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pywgb-0.1.2.tar.gz.
File metadata
- Download URL: pywgb-0.1.2.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e15ee04822be64dd7ba8f7d9de9b6a262c42a81e79fb2a7af4f7229c631ab17
|
|
| MD5 |
8dd8eecc0f7394f129331e2c457f0eb9
|
|
| BLAKE2b-256 |
2db60e301720d6cf91fcb936b3bc9d37ce9d570e443857cd0e6084136b4aa6f0
|
File details
Details for the file pywgb-0.1.2-py3-none-any.whl.
File metadata
- Download URL: pywgb-0.1.2-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c04f571edd4e3eb5d5e37bbac037365b43c03986284ec8b71576e8292f24e424
|
|
| MD5 |
605283ac12a9c321aedd0c1848997ef0
|
|
| BLAKE2b-256 |
66d2bc3a88aa6b6c7632c37ee87d9a1c0f33ac6b68dd7dd1e5147efa0b4c4ba6
|