feishu.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. """
  2. feishu python方法
  3. """
  4. import json
  5. import requests
  6. import datetime
  7. class Feishu(object):
  8. """
  9. feishu Python Object
  10. """
  11. def __init__(self):
  12. self.document_url = (
  13. "https://w42nne6hzg.feishu.cn/sheets/C1Qrsa4HWh6bzEtv7aocrFlAnad"
  14. )
  15. self.robot_url = "https://open.feishu.cn/open-apis/bot/v2/hook/34e2fdbc-0649-44d3-b5ce-b28b38cca1db"
  16. self.headers = {"Content-Type": "application/json"}
  17. def insert(self):
  18. """
  19. 写入飞书表格
  20. :return:
  21. """
  22. return self.document_url
  23. def bot(self, platform_name, flag=1):
  24. """
  25. 飞书机器人,在群里报警用
  26. :param platform_name: 小程序的名称
  27. :param flag: 通知 or 报警, 默认为1, 通知
  28. :return:
  29. """
  30. if flag == 1:
  31. payload = {
  32. "msg_type": "interactive",
  33. "card": {
  34. "elements": [
  35. {
  36. "tag": "div",
  37. "text": {
  38. "content": "**{}**\n数据自动导出完成;\n完成时间是:{}。".format(
  39. platform_name, datetime.datetime.now().__str__()
  40. ),
  41. "tag": "lark_md",
  42. },
  43. },
  44. ],
  45. "header": {"title": {"content": "We分析: 通知 ✅", "tag": "plain_text"}},
  46. },
  47. }
  48. else:
  49. payload = {
  50. "msg_type": "interactive",
  51. "card": {
  52. "elements": [
  53. {
  54. "tag": "div",
  55. "text": {
  56. "content": "**{}**\n自动导出失败 !!!".format(
  57. platform_name
  58. ),
  59. "tag": "lark_md",
  60. },
  61. },
  62. ],
  63. "header": {"title": {"content": "We分析: 报警 ❌", "tag": "plain_text"}},
  64. },
  65. }
  66. w = requests.request(
  67. "POST", url=self.robot_url, headers=self.headers, data=json.dumps(payload)
  68. )
  69. print(w.json())
  70. # if response.status_code == 200:
  71. # return True
  72. # else:
  73. # print("飞书通知失败")
  74. # return
  75. # if __name__ == "__main__":
  76. # F = Feishu()
  77. # F.bot("票圈视频", 2)