Python 釘釘獲取日誌資料api的使用

2021-10-07 08:23:12 字數 3566 閱讀 3526

以後執行在後台自動定時匯出日誌資料,處理好格式加上一些分析判斷,報表再也不用自己做了

返回資料格式見釘釘開發文件

# -*- coding: gbk -*-

import time

import datetime

from datetime import timedelta

import json

import requests

#轉為13位時間戳

defgettimestamp

(start_time_src,end_time_src)

: start_time_convert=time.mktime(time.strptime(

str(start_time_src)

,'%y-%m-%d %h:%m:%s'))

end_time_convert=time.mktime(time.strptime(

str(end_time_src)

,'%y-%m-%d %h:%m:%s'))

start_time=

int(

round

(start_time_convert *

1000))

end_time=

int(

round

(end_time_convert *

1000))

return

#獲取一天/一周/一月的日期區間

#today=2020-06-19 00:00:00 tomorrow=2020-06-20 00:00:00

defgettime()

: today = datetime.datetime.now(

) yesterday = today - timedelta(days=1)

this_week_start = today - timedelta(days=today.weekday())

this_week_end = today + timedelta(days=

6-today.weekday())

this_month_start =

str(datetime.datetime(today.year, today.month,1)

) this_month_end =

str(datetime.datetime(today.year, today.month +1,

2)- timedelta(days=1)

) tomorrow =

str(datetime.datetime(today.year, today.month, today.day+1)

) today =

str(datetime.datetime(today.year, today.month, today.day)

) yesterday=

str(datetime.datetime(yesterday.year, yesterday.month, yesterday.day)

) this_week_start =

str(datetime.datetime(this_week_start.year, this_week_start.month, this_week_start.day)

) this_week_end =

str(datetime.datetime(this_week_end.year, this_week_end.month, this_week_end.day+1)

)return

#計算token得到url

defgetapi()

: token=json.loads(requests.get(

.text)

.get(

'access_token'

) url=

''+token

return url

#傳送請求獲取日誌列表

defgetsearch

(url,index,start_time,end_time)

: send_json=

result=requests.post(url=url,data=json.dumps(send_json)

, headers=

) res=json.loads(result.text)

return res

#處理獲取的資料,具體按需根據釘釘開發文件編寫

defaddstore

(peps,datalist)

:for data in datalist:

pep_name=data[

'creator_name'

] pep_contents=data[

'contents'

]for content in contents:

'key'

),content.get(

'value'))

defgetyesterdaystore()

: calc_time=gettime(

) calc_timestamp=gettimestamp(calc_time[

'yesterday'

],calc_time[

'today'])

url=getapi();

peps=

#第一次查詢,游標設為0

res=getsearch(url,

0,calc_timestamp[

'start_time'

],calc_timestamp[

'end_time'])

if res.get(

'result'

).get(

'data_list')!=

: addstore(peps,res.get(

'result'

).get(

'data_list'))

#迴圈查詢到最後一頁

while

(res.get(

'result'

).get(

'has_more')==

true):

#得到游標

index=res.get(

'result'

).get(

'next_cursor'

) res=getsearch(url,index,calc_timestamp[

'start_time'

],calc_timestamp[

'end_time'])

if res.get(

'result'

).get(

'data_list')!=

: addstore(peps,res.get(

'result'

).get(

'data_list'))

return peps

if __name__ ==

'__main__'

:print

(len

(getyesterdaystore())

)

python開發釘釘小程式 (一)獲取token

1 在工程中加入釘釘python版sdk,注意目前這個版本都是基於python2的,要自己轉換成python3。使用python3自帶的2to3功能進行轉換 cmd 執行 跳轉到 2to3.py 檔案所在目錄 輸入 python 2to3.py w 命令後不要急著回車,先把你要轉換的python檔案...

釘釘考勤資料抓取 釘釘考勤答疑你關心的都在這裡

釘釘 那些事兒 答疑篇 01.釘釘資料是如何採集的?員工通過釘釘考勤或考勤機按 所排班次 加班時間段 出廠證時間段 請假時間段 前 後各刷卡1次,後台將採集到的刷卡日期 刷卡時間統一彙總到hr系統,與當日 班次時段 加班時段 去匹配,不一致則顯示遲到 早退 曠工 漏打卡等異常現象。注意 1 在考勤組...

釘釘開發系列 四 獲取JS票據

釘釘的客戶端開發和服務端有乙個重要的區別,服務端只需要得到access token就可以了,而客戶端還需要進一步換取jsticket。所以我們要進行客戶端的開發,第一步就是得到jsticket。又由於jsticket有7200秒的限制,而且每請求一次前面的就會失效,為此我們需要做乙個快取層來儲存。首...