使用 Python 向 Microsoft Teams 发送自动消息

新手上路,请多包涵

我想运行一个 Python 脚本,最后通过 MS Teams 将结果以文本格式发送给几个员工

是否有任何已经构建的库允许我通过 Python 代码在 Microsoft Teams 中发送消息?

原文由 Ricardo Vilaça 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.6k
2 个回答

1. 在 MS Teams 中创建一个 webhook

将传入的 webhook 添加到团队频道:

  1. 导航到要添加 webhook 的频道,然后从顶部导航栏中选择 (•••) _连接器_。
  2. 搜索 Incoming Webhook 并添加它。
  3. 单击 配置 并为您的 webhook 提供一个名称。
  4. 复制出现的 URL,然后单击“确定”。

2.安装pymsteams

 pip install pymsteams

3. 创建你的 python 脚本

import pymsteams
myTeamsMessage = pymsteams.connectorcard("<Microsoft Webhook URL>")
myTeamsMessage.text("this is my text")
myTeamsMessage.send()

此处提供更多信息:

将网络书添加到 MS Teams

Python pymsteams 库

原文由 AK47 发布,翻译遵循 CC BY-SA 4.0 许可协议

无需附加包即可发送 Msteams 通知。

一种无需使用任何外部模块即可向团队发送消息的简单方法。这基本上是在 pymsteams 模块的引擎盖下。当您使用 AWS Lambda 时它更有用,因为您不必在 Lambda 中添加层或提供 pymsteams 模块作为部署包。

 import urllib3
import json

class TeamsWebhookException(Exception):
    """custom exception for failed webhook call"""
    pass

class ConnectorCard:
    def __init__(self, hookurl, http_timeout=60):
        self.http = urllib3.PoolManager()
        self.payload = {}
        self.hookurl = hookurl
        self.http_timeout = http_timeout

    def text(self, mtext):
        self.payload["text"] = mtext
        return self

    def send(self):
        headers = {"Content-Type":"application/json"}
        r = self.http.request(
                'POST',
                f'{self.hookurl}',
                body=json.dumps(self.payload).encode('utf-8'),
                headers=headers, timeout=self.http_timeout)
        if r.status == 200:
            return True
        else:
            raise TeamsWebhookException(r.reason)

if __name__ == "__main__":
    myTeamsMessage = ConnectorCard(MSTEAMS_WEBHOOK)
    myTeamsMessage.text("this is my test message to the teams channel.")
    myTeamsMessage.send()

参考资料:pymsteams

原文由 nirojshrestha019 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏