首页 > 其他分享 >Tesla 开发者 API 指南:通过Http发送命令

Tesla 开发者 API 指南:通过Http发送命令

时间:2024-08-24 17:48:06浏览次数:11  
标签:Http Tesla pem API 开发者 key go

前言

特斯拉提供两种与汽车通信的方式。一种是使用 API 通过互联网,另一种是使用 BLE 连接。

特斯拉现在只能接受车辆命令 SDK (vehicle command SDK)方式发送命令,该 SDK 使用 Http-Proxy 服务器将命令转发给车辆。除了验证 oAuth 令牌之外,特斯拉正在转向一种更安全的方式将命令传递给汽车.

需要注意的是,网络API会有一点延时,比 BLE 方式稍微慢一点.

先决条件

  1. Golang 已安装
  2. 在 Tesla 门户注册第三方应用时生成的公钥和私钥可用
  3. 有效的 Tesla 用户凭证,用于生成访问令牌

go 环境搭建自行搜索教程

注意:本工具虽然标记只能运行于 mac 或者 linux, 但是win下也是能运行的,只是官方没有技术支援而以。

vin码就是车架识别号,类似 7ABCGDEE123ABC555。 在前玻璃地下那里能看到,手机app也能找到。以下用 {yourvin} 代替,实际替换为你自己的字符串,{ } 这两个符号也去掉。

1. 克隆项目到本地

https://github.com/teslamotors/vehicle-command.git

2. 项目根目录下执行命令

go get ./...
go build ./...
go install ./...
cd cmd
cd tesla-http-proxy 
go build 

3. 生成密钥

为了演示方便,直接就在当前目录下建立密钥文件

生成私钥和公钥

openssl req -x509 -nodes -newkey ec \
-pkeyopt ec_paramgen_curve:secp521r1 \
-pkeyopt ec_param_enc:named_curve \
-subj '/CN=localhost' \
-keyout key.pem -out cert.pem -sha256 -days 3650 \
-addext "extendedKeyUsage = serverAuth" \
-addext "keyUsage = digitalSignature, keyCertSign, keyAgreement"

key.pem是私钥文件。cert.pem 是TLS证书链文件

3. 启动 HTTP 代理服务器

private.pem 是在使用 tesla 注册第三方应用程序时生成的私钥

./tesla-http-proxy -tls-key key.pem -key-file private.pem -cert cert.pem -port 443 -verbose

4. 测试闪灯命令

{AuthorizationToken} 来源于文章注册第三方应用程序生成的 Token, 类似于 eyJhbGci...lecxsFTYOE3n3w

curl
--cacert cert.pem \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer {AuthorizationToken}" \
--data '{}' \
"https://localhost:443/api/1/vehicles/7SAYGDEE2PA110666/command/flash_lights"

更多

  1. Tesla 开发者 API 指南:注册开发者账号
  2. Tesla 开发者 API 指南:BLE 发送车辆命令
  3. Tesla 开发者 API 指南:通过Http发送命令
  4. Tesla 开发者 API 指南:Tesla Fleet API

参考资料

https://shankarkumarasamy.blog/2024/01/28/tesla-developer-api-guide-ble-key-pair-auth-and-vehicle-commands-part-3/

https://github.com/teslamotors/vehicle-command/blob/main/README.md

标签:Http,Tesla,pem,API,开发者,key,go
From: https://www.cnblogs.com/densen2014/p/18377976

相关文章

  • 使用Mediapipe和OpenPose进行人体动作分析、计数以及3D姿态估计
     人体步数统计,俯卧撑计数,仰卧起坐计数,引体向上计数,人体动作分析,动作计数,mediapipe,openpose,人体3d姿态分析,3d姿态估计。本项目旨在开发一个基于计算机视觉的人体运动分析系统,能够准确地识别和计数诸如步行、俯卧撑、仰卧起坐、引体向上等多种常见体育锻炼动作。系统利用先进......
  • 一探究竟:免费提供API接口的原理揭秘
    API接口是软件系统中不同组件之间进行交互的一种方式。它定义了不同软件组件之间的通信规范和数据格式,使得这些组件能够相互调用和交换数据。API的全称是“ApplicationProgrammingInterface”,意为“应用程序编程接口”API接口的原理定义与规范:API接口首先定义了一套规范,......
  • API设计的8个技巧
    原文: 高效API设计的8个技巧-小红书(xiaohongshu.com)本文是笔者在该文章基础上加入自己理解以及一定的扩展,如有问题欢迎指出1.贴合主要模型在设计RestfulAPI的路径结构时,我们可以参考系统中的模型及其附带关系。即使用模型的名称和逻辑来设计路径。例如:有关订单......
  • 如何申请 Midjourney API ,看这篇文章就够了
    MidjourneyImagineAPI申请及使用Midjourney是一款非常强大的AI绘图工具,只要输入关键字,就能在短短一两分钟生成十分精美的图像。Midjourney以其出色的绘图能力在业界独树一帜,如今,Midjourney早已在各个行业和领域广泛应用,其影响力愈发显著。本文档主要介绍Midjourn......
  • Java 12 新特性—新增 String API
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • HttpClient
    介绍HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。maven坐标<dependency>             <groupId>org.apache.httpcomponents<......
  • Android SDK is missing required platform api
    如果这个时候选择UpdateAndroidSDK以升级AndroidSDK的话,可能会弹出一个终端窗口,然后自动关闭后又重复弹该窗口,重复数次,最后还是不能成功升级AndroidSDK。线上搜的教程大部分都是叫下载AndroidStudio,可是笔者只想用Unity进行做开发。解决方法导致Unity无法升级A......
  • 二维码耍出新花样,充满创意艺术——Artistic QR Generation API
    艺术二维码API的申请与运用艺术二维码,这一创意十足的技术产物,将二维码与迷人的背景图像相结合,形成了既实用又富有美感的艺术作品。它们不仅保持了传统二维码的信息功能,可以被智能设备快速扫描识别,更融入了艺术元素,极大地提升了视觉吸引力和品牌识别度。在某些情况下,这些......
  • 利用Spring Boot实现微服务的API网关统一日志
    利用SpringBoot实现微服务的API网关统一日志大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务的分布式特性使得日志管理变得复杂。为了更好地监控和调试服务,统一日志记录变得尤为重要。本文将介绍如何使用SpringBoot实现API网关的......
  • 利用Spring Boot实现微服务的API网关路由规则
    利用SpringBoot实现微服务的API网关路由规则大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!微服务架构与API网关在微服务架构中,服务被拆分成了多个独立的、可独立部署的组件。API网关作为微服务架构中的一个关键组件,负责请求路由、负载均衡、认证......