""" feishu python方法 """ import requests 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 FeishuInsert(object): """ feishu Python Object """ def __init__(self, document_token): self.headers = {"Content-Type": "application/json"} self.document_token = document_token def insert_value(self, sheet_id, ranges, values): """ 在表的某一个sheet的ranges中插入数据,若该地方存在数据,会自动把已有的数据往下移动,再写如数据 :param sheet_id: 飞书表的唯一ID :param ranges: 单元格位置的range, 从左上角到右下角, 两边都是闭区间 :param values: 二维数组, 用于填充ranges的空格数组 """ insert_value_url = "https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{}/values_prepend".format( self.document_token) # print(get_app_token()) headers = { "Authorization": "Bearer " + get_app_token(), 'contentType': 'application/json; charset=utf-8' } body = { "valueRange": { "range": "{}!{}".format(sheet_id, ranges), "values": values } } response = requests.request("POST", url=insert_value_url, headers=headers, json=body) print(response.json())