首页 > 其他分享 >调用高德API 进行对接钉钉的签到的经纬度计算行程轨迹

调用高德API 进行对接钉钉的签到的经纬度计算行程轨迹

时间:2024-12-09 18:11:02浏览次数:8  
标签:key get 签到 API amap str date 高德 match

调用高德API 进行对接钉钉的签到的经纬度计算行程轨迹

import json
import requests
key_amap = '1c807c7b070eac7b6ffa7cd894bb112a49'

# 生产环境中,可以根据钉钉签到中获取到的经纬度进行构造这个origin 和 destination origin = '28.856221,120.741824' destination = '28.919571,121.250241' # url = f"https://restapi.amap.com/v3/direction/driving?origin={origin}&destination={destination}&extensions=all&output=xml&key={key_amap}" # url = f"https://restapi.amap.com/v3/direction/driving?key={key_amap}&origin=120.741824,28.856221&destination=121.250241,28.919571&extensions=base&strategy=5&waypoints=+0&avoidpolygons=" url = f"https://restapi.amap.com/v5/direction/driving?origin=120.741824,28.856221&destination=121.250241,28.919571&key={key_amap}&strategy=0" data = requests.get(url).text count_paths = json.loads(data).get('count') print('导航路线数量:', count_paths) distance_count_list = json.loads(data).get('route').get('paths') distance_count_list = [item['distance'] for item in distance_count_list] print(distance_count_list) """ API :https://lbs.amap.com/api/webservice/guide/api/newroute """ # # pattern = re.compile(r'"instruction":"(.*?)".*?"road":"(.*?)".*?"distance":"(\d+)".*?"duration":"(\d+)"', re.S) # # # Extract data # matches = pattern.findall(data) # # print(["-->\n\n".join(match) for match in matches]) # # Format into a list of dictionaries # extracted_routes = [{"instruction": match[0], "road": match[1], "distance": match[2], "duration": match[3]} for match in matches] # # print(extracted_routes) # # Convert to JSON # route_json = json.dumps(extracted_routes, ensure_ascii=False, indent=2) # pprint(route_json) # # print(extracted_routes)

下面是获取钉钉中签到中的经纬度的代码

from datetime import datetime

import dingtalk.api


def date_to_milliseconds(date_str, date_format="%Y-%m-%d %H:%M:%S"):
    """
    将日期字符串转换为毫秒级时间戳。

    :param date_str: 日期字符串
    :param date_format: 日期字符串的格式,默认为"%Y-%m-%d %H:%M:%S"
    :return: 毫秒级时间戳
    """
    dt = datetime.strptime(date_str, date_format)
    timestamp_ms = int(dt.timestamp() * 1000)
    return timestamp_ms


def get_checkin_records(access_token):
    req = dingtalk.api.OapiCheckinRecordRequest("https://oapi.dingtalk.com/checkin/record")
    req.department_id = 1

    req.start_time = date_to_milliseconds("2024-12-01 00:00:00")
    req.end_time = date_to_milliseconds("2024-12-02 00:00:00")
    req.order = "desc"

    resp = req.getResponse(access_token)
    # print(resp.get('data'))
    for item in resp.get('data'):
        longitude_str = f"{item['longitude']:.6f}"
        latitude_str = f"{item['latitude']:.6f}"
        location_str = f"({longitude_str},{latitude_str})"
        print(location_str)
    return resp


if __name__ == '__main__':
    get_checkin_records('your access key')

特别注意的是:dingtalk.opi 这个库要去钉钉的API网站去下载。
目前这个还没有完成,现在记录下来。备用

标签:key,get,签到,API,amap,str,date,高德,match
From: https://www.cnblogs.com/lyt263/p/18595706

相关文章

  • wtsapi32.dll文件运行异常:Windows平台上的处理指南
    在使用Windows操作系统时,有时你可能会遇到一些与系统文件相关的错误,其中wtsapi32.dll文件运行异常就是一个较为常见的问题。wtsapi32.dll是Windows操作系统中的一个关键动态链接库(DLL)文件,它主要用于支持远程桌面协议(RDP)和其他终端服务相关的功能。当这个文件出现问题时,可能会导......
  • Sealos AI Proxy 发布!一个平台调用所有大模型,再也不用到处找 API 了
    你是一位开发者,你需要调用各类AI模型,每次调用模型,都要在不同的平台间反复横跳,你大概会遇到以下问题:获取APIKey流程繁琐:需访问多个厂商的官网,查阅各自的使用文档,并按照规定的步骤进行注册和申请。多平台支付:在调用来自不同厂商的模型时,需要在这些厂商的计费平台上进行支付......
  • [Javascript] Create Smooth UI Transitions with the Native View Transitions API
    Inthislesson,you'lllearnhowtoimplementsmoothstatetransitionsinyourwebapplicationsusingthebrowser'sbuilt-inViewTransitionsAPI.We'llcreateasimpleexamplethatdemonstrateshowtoanimatebetweendifferenttextstates......
  • 使用QT进行百度图像识别API调用
    此篇文章在2022年2月21日被记录先上视频:完成思路:1、先去百度智能云免费创建一个图片识别应用“点击我”,创建成功后可以获得APIKey与SecretKey,后续我们将通过这两个key获取access_token,很简单,通过查看官网文档可以知道获取的方法,post获取之后就可以在返回的json字符串中看......
  • 使用Python调用百度API进行多目标检测
    此篇文章在2022年2月20日被记录直接上代码:#encoding:utf-8importrequestsimportbase64importcv2fromxpinyinimportPinyinp=Pinyin()img_src=r"C:\Users\TSK\Desktop\test.png"display_img=cv2.imread(img_src)#cl......
  • IDEA如何调试Stream API
    StreamAPI现在在实际开发中应用非常广泛,经常会遇到需要调试StreamAPI的场景,这篇文章主要讲解如何使用IDEA调试Stream@Testpublicvoidtest(){Stream.of(10,20,30,40,50).mapToInt(e->e*10).filter(e->e>200)......
  • 强化学习:基于课程学习的强化学习算法 —— 《Combining Reward Shaping and Curriculu
    地址:https://www.tesble.com/10.1109/ICTC.2018.8539438我们在四种不同的奖励函数和终止条件下对行走者进行了训练,以评估结合奖励塑形和课程学习的效果。具体如下。1)距离稀疏奖励:行走者到达目标时给予1个奖励,否则为0。2)距离课程奖励:给予行走者的奖励与行走者距离稀疏奖励......
  • Python-geopandas-读取MapInfor-20241209
    #读取数据,需要制定坐标格式shapefile_path=r'd:\Mapinfor\map\赣江新区新增图层.TAB'mapinfo_gdp=gpd.read_file(shapefile_path,driver="MapinfoFile")#先设置一个坐标系,否则会报提示性错误mapinfo_gdp=mapinfo_gdp.to_crs(epsg=4326)#校验坐标系,转换到目标投影......
  • 使用Python开发获取商品销量详情API接口?(一篇文章全学会)
    在现代软件开发中,API(应用程序编程接口)已成为不同软件间交互的桥梁。尤其在电商领域,API接口使得开发者能够访问和操作电商平台上的数据,如商品详情、用户评价、订单信息等。本文将详细介绍如何使用Python开发一个获取商品销量详情的API接口。一、API接口概述API(ApplicationPro......
  • 【攻防技术系列】API Hook基础与实战
    例子:exe调用dll,后hook掉dll中的函数dll代码:#include<windows.h>//EntrypointoftheDLLBOOLAPIENTRYDllMain(HMODULEhModule,DWORDdwReasonForCall,LPVOIDlpReserved){switch(dwReasonForCall){caseDLL_PROCESS_ATTACH:break;caseDLL......