|
@@ -6,24 +6,81 @@ import requests
|
|
|
import datetime
|
|
|
|
|
|
|
|
|
+def get_app_token():
|
|
|
+ """
|
|
|
+ 获取飞书api token
|
|
|
+ :return:
|
|
|
+ """
|
|
|
+ url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/"
|
|
|
+ post_data = {
|
|
|
+ "app_id": "cli_a51114cf8bf8d00c", # 这里账号密码是发布应用的后台账号及密码
|
|
|
+ "app_secret": "cNoTAqMpsAm7mPBcpCAXFfvOzCNL27fe",
|
|
|
+ }
|
|
|
+ response = requests.request("POST", url=url, data=post_data)
|
|
|
+ tenant_access_token = response.json()["tenant_access_token"]
|
|
|
+ return tenant_access_token
|
|
|
+
|
|
|
+
|
|
|
class Feishu(object):
|
|
|
"""
|
|
|
feishu Python Object
|
|
|
"""
|
|
|
|
|
|
def __init__(self):
|
|
|
- self.document_url = (
|
|
|
- "https://w42nne6hzg.feishu.cn/sheets/C1Qrsa4HWh6bzEtv7aocrFlAnad"
|
|
|
- )
|
|
|
+ self.document_url = "https://w42nne6hzg.feishu.cn/sheets/C1Qrsa4HWh6bzEtv7aocrFlAnad"
|
|
|
self.robot_url = "https://open.feishu.cn/open-apis/bot/v2/hook/34e2fdbc-0649-44d3-b5ce-b28b38cca1db"
|
|
|
self.headers = {"Content-Type": "application/json"}
|
|
|
+ self.document_token = "C1Qrsa4HWh6bzEtv7aocrFlAnad"
|
|
|
|
|
|
- def insert(self):
|
|
|
+ def insert_columns_rows(self, sheet_id, major_dimension, start_index, end_index):
|
|
|
"""
|
|
|
写入飞书表格
|
|
|
- :return:
|
|
|
+ :param sheet_id: 表的id
|
|
|
+ :param major_dimension:行或者列, ROWS, COLUMNS
|
|
|
+ :param start_index:开始位置
|
|
|
+ :param end_index:结束位置
|
|
|
+ """
|
|
|
+ insert_columns_url = "https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/" \
|
|
|
+ + self.document_token + "/insert_dimension_range"
|
|
|
+ headers = {
|
|
|
+ "Authorization": "Bearer " + get_app_token(),
|
|
|
+ "Content-Type": "application/json; charset=utf-8",
|
|
|
+ }
|
|
|
+ body = {
|
|
|
+ "dimension": {
|
|
|
+ "sheetId": sheet_id,
|
|
|
+ "majorDimension": major_dimension, # 默认 ROWS ,可选 ROWS、COLUMNS
|
|
|
+ "startIndex": start_index, # 开始的位置
|
|
|
+ "endIndex": end_index # 结束的位置
|
|
|
+ },
|
|
|
+ "inheritStyle": "AFTER" # BEFORE 或 AFTER,不填为不继承 style
|
|
|
+ }
|
|
|
+ response = requests.post(url=insert_columns_url, headers=headers, json=body, verify=False)
|
|
|
+ print(response.json()['msg'])
|
|
|
+
|
|
|
+ def insert_value(self, sheet_id, ranges, values):
|
|
|
"""
|
|
|
- return self.document_url
|
|
|
+ update
|
|
|
+ :param sheet_id:
|
|
|
+ :param ranges:
|
|
|
+ :param values:
|
|
|
+ """
|
|
|
+ update_values_url = "https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/" \
|
|
|
+ + self.document_token + "/values_batch_update"
|
|
|
+ headers = {
|
|
|
+ "Authorization": "Bearer " + get_app_token(),
|
|
|
+ "Content-Type": "application/json; charset=utf-8"
|
|
|
+ }
|
|
|
+ body = {
|
|
|
+ "valueRanges": [
|
|
|
+ {
|
|
|
+ "range": sheet_id + "!" + ranges,
|
|
|
+ "values": values
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ response = requests.request("POST", url=update_values_url, headers=headers, json=body)
|
|
|
+ print(response.json())
|
|
|
|
|
|
def bot(self, platform_name, flag=1):
|
|
|
"""
|
|
@@ -58,27 +115,48 @@ class Feishu(object):
|
|
|
{
|
|
|
"tag": "div",
|
|
|
"text": {
|
|
|
- "content": "**{}**\n自动导出失败 !!!".format(
|
|
|
- platform_name
|
|
|
- ),
|
|
|
+ "content": "**{}**\n自动导出失败 !!!".format(platform_name),
|
|
|
"tag": "lark_md",
|
|
|
},
|
|
|
},
|
|
|
],
|
|
|
- "header": {"title": {"content": "We分析: 报警 ❌", "tag": "plain_text"}},
|
|
|
+ "header": {
|
|
|
+ "title": {"content": "We分析: 报警 ❌", "tag": "plain_text"}
|
|
|
+ },
|
|
|
},
|
|
|
}
|
|
|
w = requests.request(
|
|
|
"POST", url=self.robot_url, headers=self.headers, data=json.dumps(payload)
|
|
|
)
|
|
|
print(w.json())
|
|
|
- # if response.status_code == 200:
|
|
|
- # return True
|
|
|
- # else:
|
|
|
- # print("飞书通知失败")
|
|
|
- # return
|
|
|
+
|
|
|
+ def remind(self):
|
|
|
+ """
|
|
|
+ 飞书提醒机器人
|
|
|
+ :return: None
|
|
|
+ """
|
|
|
+ payload = {
|
|
|
+ "msg_type": "interactive",
|
|
|
+ "card": {
|
|
|
+ "elements": [
|
|
|
+ {
|
|
|
+ "tag": "div",
|
|
|
+ "text": {
|
|
|
+ "content": "扫码通知:记得要扫码导出we分析, ",
|
|
|
+ "tag": "lark_md",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ "header": {"title": {"content": "We分析: 提醒 ⏰", "tag": "plain_text"}},
|
|
|
+ },
|
|
|
+ }
|
|
|
+ w = requests.request(
|
|
|
+ "POST", url=self.robot_url, headers=self.headers, data=json.dumps(payload)
|
|
|
+ )
|
|
|
+ print(w.json())
|
|
|
|
|
|
|
|
|
-# if __name__ == "__main__":
|
|
|
-# F = Feishu()
|
|
|
-# F.bot("票圈视频", 2)
|
|
|
+if __name__ == "__main__":
|
|
|
+ F = Feishu()
|
|
|
+ value = [[0]]
|
|
|
+ F.insert_value(sheet_id="gwzBOM", values=value, ranges="D1:F1")
|