from utils.utils import request_post, request_get from config import set_config config_, env = set_config() class FeiShuHelper(object): @staticmethod def get_tenant_access_token(): """获取自建应用的tenant_access_token""" url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" headers = {"Content-Type": "application/json; charset=utf-8"} request_data = config_.FEISHU_TOKEN data = request_post(request_url=url, headers=headers, request_data=request_data) if data is not None: tenant_access_token = data.get('tenant_access_token') return tenant_access_token def get_data(self, spreadsheet_token, sheet_id): """读取电子表格数据""" tenant_access_token = self.get_tenant_access_token() url = f"https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_batch_get" headers = { "Content-Type": "application/json; charset=utf-8", "Authorization": f"Bearer {tenant_access_token}" } params = { 'ranges': sheet_id, } data = request_get(request_url=url, headers=headers, params=params) values = [] if data is not None: try: values = data['data']['valueRanges'][0].get('values') except: values = [] return values if __name__ == '__main__': sheet_info = config_.SHEET_INFO['汉语常用词汇表'] FeiShuHelper().get_data(spreadsheet_token=sheet_info.get('spreadsheet_token'), sheet_id=sheet_info.get('sheet_id'))