feishu_api.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import requests
  2. class Feishu:
  3. def __init__(self):
  4. self.token = None
  5. self.headers = {"Content-Type": "application/json"}
  6. def fetch_token(self):
  7. url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/"
  8. post_data = {
  9. "app_id": "cli_a51114cf8bf8d00c",
  10. "app_secret": "cNoTAqMpsAm7mPBcpCAXFfvOzCNL27fe",
  11. }
  12. response = requests.request("POST", url=url, data=post_data)
  13. tenant_access_token = response.json()["tenant_access_token"]
  14. self.token = tenant_access_token
  15. class FeishuSheetApi(Feishu):
  16. def prepend_value(self, sheet_token, sheet_id, ranges, values):
  17. insert_value_url = "https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{}/values_prepend".format(
  18. sheet_token
  19. )
  20. headers = {
  21. "Authorization": "Bearer " + self.token,
  22. "contentType": "application/json; charset=utf-8",
  23. }
  24. body = {
  25. "valueRange": {"range": "{}!{}".format(sheet_id, ranges), "values": values}
  26. }
  27. response = requests.request(
  28. "POST", url=insert_value_url, headers=headers, json=body
  29. )
  30. print(response.json())
  31. def insert_value(self, sheet_token, sheet_id, ranges, values):
  32. insert_value_url = (
  33. "https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{}/values".format(
  34. sheet_token
  35. )
  36. )
  37. headers = {
  38. "Authorization": "Bearer " + self.token,
  39. "contentType": "application/json; charset=utf-8",
  40. }
  41. body = {
  42. "valueRange": {"range": "{}!{}".format(sheet_id, ranges), "values": values}
  43. }
  44. response = requests.request(
  45. "PUT", url=insert_value_url, headers=headers, json=body
  46. )
  47. print(response.json())