sample.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. var CryptoJS = require("crypto-js");
  2. const axios = require('axios');
  3. function decryptPrivityKey(message) {
  4. var encrypted = message;
  5. var key = process.env.DENET_CRYPT_KEY
  6. var iv = process.env.DENET_CRYPT_IV
  7. if (!key || !iv) {
  8. console.error('decryptPrivityKey key or iv is empty?');
  9. return null;
  10. }
  11. console.log('encrypted=', encrypted);
  12. key = CryptoJS.enc.Utf8.parse(key);
  13. iv = CryptoJS.enc.Utf8.parse(iv)
  14. var decrypted = CryptoJS.AES.decrypt(encrypted
  15. , key
  16. , { iv: iv, mode: CryptoJS.mode.CBC }
  17. );
  18. console.log('decrypted decrypt ==', decrypted);
  19. var de_pk = decrypted.toString(CryptoJS.enc.Utf8);
  20. console.log('decrypted==', de_pk);
  21. return de_pk
  22. }
  23. // decryptPrivityKey('bnUvrSKmU3l7zONP+hIH1BOMhNVfIBUgEziWb2tGiUgn63FZVdzXC9E1DT+Mx3B+nqrzUAqd60I/8rLobYYl+0TSR3Ri1o0iX/hcxqs/0yg=')
  24. const getFeishuToken = async (params) => {
  25. return new Promise(resolve => {
  26. axios.post('https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal',
  27. {
  28. app_id: "cli_a223f015abbad00e",
  29. app_secret: "DMCF6tBwIpeOQPnWrFUMYd6tmjb53C4n"
  30. },
  31. {
  32. timeout: 1 * 60 * 1000,
  33. headers: {
  34. 'Content-Type': "application/json; charset=utf-8"
  35. }
  36. })
  37. .then(res => {
  38. console.log('res=>', res.status, res.data);
  39. resolve(res.data)
  40. }).catch(err => {
  41. logger.error('http_request_post withdraw_czz error ', JSON.stringify(err));
  42. resolve(JSON.stringify(err))
  43. });
  44. })
  45. }
  46. function writeTable(app_token) {
  47. var body = {
  48. 'valueRanges': [
  49. {
  50. 'range': '072d4e!A1:B1',
  51. 'values': [
  52. ['2022/06/15 11:43:23', 1],
  53. ]
  54. }
  55. ]
  56. }
  57. return new Promise(resolve => {
  58. axios.post('https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/shtcnsS7N9KS6pVUvR9qvj8mYpb/values_batch_update',
  59. body,
  60. {
  61. timeout: 1 * 60 * 1000,
  62. headers: {
  63. 'Content-Type': "application/json; charset=utf-8",
  64. 'Authorization': 'Bearer ' + app_token
  65. }
  66. })
  67. .then(res => {
  68. console.log('res=>', res.status, res.data);
  69. resolve(res.data)
  70. }).catch(err => {
  71. console.error('error ', JSON.stringify(err));
  72. resolve(JSON.stringify(err))
  73. });
  74. })
  75. }
  76. async function insertTableRows(app_token) {
  77. var body = {
  78. dimension: {
  79. sheetId: '072d4e',
  80. majorDimension: 'ROWS',
  81. startIndex: 0,
  82. endIndex: 1,
  83. },
  84. inheritStyle: 'AFTER'
  85. }
  86. return new Promise(resolve => {
  87. axios.post('https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/shtcnsS7N9KS6pVUvR9qvj8mYpb/insert_dimension_range',
  88. JSON.stringify(body),
  89. {
  90. timeout: 1 * 60 * 1000,
  91. headers: {
  92. 'Content-Type': "application/json; charset=utf-8",
  93. 'Authorization': 'Bearer ' + app_token
  94. }
  95. })
  96. .then(res => {
  97. console.log('res=>', res.status, res.data);
  98. resolve(res.data)
  99. }).catch(err => {
  100. console.error('error ', JSON.stringify(err));
  101. resolve(JSON.stringify(err))
  102. });
  103. })
  104. }
  105. async function exec() {
  106. var app = await getFeishuToken()
  107. await insertTableRows(app.app_access_token)
  108. await writeTable(app.app_access_token)
  109. }
  110. exec()