Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
電気自動車 Tesla の公式API をPostman から実行し、車両データを取得・分析して...
Search
Kazuya Sugimoto
February 28, 2024
Technology
1
450
電気自動車 Tesla の公式API をPostman から実行し、車両データを取得・分析してみよう! #PostmanMeetup
昨年公開された電気自動車Tesla の公式API をPostman から実行する方法を解説しつつ、このAPI を利用することでどんなデータが取得・分析できるのか? に迫ってみたいと思います。
Kazuya Sugimoto
February 28, 2024
Tweet
Share
More Decks by Kazuya Sugimoto
See All by Kazuya Sugimoto
HeatWave のLakehouse 機能を触ってみよう! 自動化してみよう! #HeatWavejp
sugimomoto
0
130
Tesla の公式API をPostman から実行し、 車両データの取得やエアコンの操作などを行ってみよう!
sugimomoto
0
250
Postman Collectionを使って社内外とのAPI連携開発・コラボレーションを円滑にできたお話
sugimomoto
0
500
グローバルチームプロジェクトでAPI 連携ソフトウェアを開発するにあたって ちょっとした工夫でプロジェクトの摩擦を軽減したお話
sugimomoto
0
160
API 連携開発効率化のために Backlog API Postman Collection を自動生成した話
sugimomoto
1
2.3k
Tesla API Hack! Power Platform から Tesla API を使ってみよう
sugimomoto
0
1.1k
200 Over API 接続のコンポーネントベンダーが語る! 「APIのここがツライよ 15選」
sugimomoto
0
660
SaaS・クラウド時代におけるバラバラデータへの取り組み方 Dynamics 365 Ver
sugimomoto
0
350
Power Platform のために押さえておくと嬉しい API のエコシステムのお話 #JPPUG #PowerPlatform #MSIgniteTheTour #MSIgnite #JPPUGWinter19
sugimomoto
0
750
Other Decks in Technology
See All in Technology
2025年春に見直したい、リソース最適化の基本
sogaoh
PRO
0
460
【2025年度新卒技術研修】100分で学ぶ サイバーエージェントのデータベース 活用事例とMySQLパフォーマンス調査
cyberagentdevelopers
PRO
4
6.5k
LLM とプロンプトエンジニアリング/チューターをビルドする / LLM, Prompt Engineering and Building Tutors
ks91
PRO
1
210
LLM as プロダクト開発のパワードスーツ
layerx
PRO
1
190
SDカードフォレンジック
su3158
0
100
古き良き Laravel のシステムは関数型スタイルでリファクタできるのか
leveragestech
1
630
食べログが挑む!飲食店ネット予約システムで自動テスト無双して手動テストゼロを実現する戦略
hagevvashi
1
160
似たような課題が何度も蘇ってくるゾンビふりかえりを撲滅するため、ふりかえりのテーマをフォーカスしてもらった話 / focusing on the theme
naitosatoshi
0
390
ソフトウェア開発現代史: "LeanとDevOpsの科学"の「科学」とは何か? - DORA Report 10年の変遷を追って - #DevOpsDaysTokyo
takabow
0
200
IVRyにおけるNLP活用と NLP2025の関連論文紹介
keisukeosone
0
180
改めて学ぶ Trait の使い方 / phpcon odawara 2025
meihei3
1
560
ElixirがHW化され、最新CPU/GPU/NWを過去のものとする数万倍、高速+超省電力化されたWeb/動画配信/AIが動く日
piacerex
0
110
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
37
1.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Building Adaptive Systems
keathley
41
2.5k
For a Future-Friendly Web
brad_frost
176
9.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Scaling GitHub
holman
459
140k
Site-Speed That Sticks
csswizardry
5
480
Git: the NoSQL Database
bkeepers
PRO
430
65k
GitHub's CSS Performance
jonrohan
1030
460k
Rails Girls Zürich Keynote
gr2m
94
13k
Transcript
© 2024 CData Software Japan, LLC | www.cdata.com/jp 電気自動車 Tesla
の公式API をPostman から実行し、 車両データを取得・分析してみよう! Postman Sendai Meetup 2024.2 2024/02/28 CData Software Japan Kazuya Sugimoto -Lead Engineer
© 2024 CData Software Japan, LLC | www.cdata.com/jp CData Software
Japan の API holic 担当 今まで300種類以上のAPIを見たり触ったりしています。 Twitter:@sugimomoto Facebook:sugimomoto Blog:http://kageura.hatenadiary.jp/ About Speaker 今まで作ったPostman Collection の 数を数えたところ、190でした!
© 2024 CData Software Japan, LLC | www.cdata.com/jp CRMおよびマーケティング自動化 会計システム
コラボレーションおよびERP オンプレミスおよびクラウドDB ドキュメントおよびファイル形式 ソーシャルネットワーキング ネットワーキングおよび認証 電子商取引 その他 CData Software は様々なツール・サービスの接続先を 拡張するドライバー・コネクター製品を扱っている会社 https://www.cdata.com/jp/drivers/
© 2024 CData Software Japan, LLC | www.cdata.com/jp 実は仙台に日本オフィスがある外資企業です!
© 2024 CData Software Japan, LLC | www.cdata.com/jp 本日のお話
© 2024 CData Software Japan, LLC | www.cdata.com/jp みなさんTesla のAPI
ってご存知ですか? https://www.teslaapi.io/
© 2024 CData Software Japan, LLC | www.cdata.com/jp 電気自動車Tesla の様々なデータ・機能に
アクセスすることができるAPI https://kageura.hatenadiary.jp/entry/teslaapihowtouse
© 2024 CData Software Japan, LLC | www.cdata.com/jp ただ、このAPI は非公式・・・
・テスラモバイルアプリの内部で利用されているAPI をリバースエンジニアリングして仕様を明らかにしたア ンオフィシャルなAPI ・サードパーティが利用することを想定して作られて いるわけではない ・当初はOAuth のPassword Grant だったため、 サードパーティにID・PWを共有しなければいけな かった ・さらにAPI 用のAccess Token はかなり強力な 権限かつスコープも無いので、位置情報が見える のはもちろんのこと、鍵の開け締めもできてしまう
© 2024 CData Software Japan, LLC | www.cdata.com/jp 便利なサードパティアプリもあるけれど スコープが緩いので、ちょっと怖い
© 2024 CData Software Japan, LLC | www.cdata.com/jp でも、とうとう2023年10月に公式API がリリース!
https://www.infoq.com/jp/news/2024/11/tesla-developer-apis/
© 2024 CData Software Japan, LLC | www.cdata.com/jp というわけで実際にTesla 公式API
を試してみよう! そして、みんなでEV API 界隈をもっと盛り上げよう! API を検証する上でPostman が便利だよ! 本日お話したいこと
© 2024 CData Software Japan, LLC | www.cdata.com/jp Postman でAPI
を試す際のポイント
© 2024 CData Software Japan, LLC | www.cdata.com/jp API を検証する上でツラいこと
Examples や Authentication に関する情報が不足していると検証がつらい https://smartbear.com/state-of-software-quality/api/documentation/
© 2024 CData Software Japan, LLC | www.cdata.com/jp 特にOAuth 周りのハンドリングは検証がメンドイ
https://www.rfc-editor.org/rfc/rfc6749#section-1.5
© 2024 CData Software Japan, LLC | www.cdata.com/jp でも、Postman ならそのあたりをUI
で設定するだけ! https://qiita.com/yokawasa/items/b4d89d983bfd23792788
© 2024 CData Software Japan, LLC | www.cdata.com/jp Tesla 公式API
をPostman から試してみよう
© 2024 CData Software Japan, LLC | www.cdata.com/jp Tesla 公式API
を試すまでのステップ 1. 環境構築 2. テスラアカウントの作成 3. アプリケーションリクエストの作成 4. Public Key・Private Key ペアを作成・ホストする 5. OAuth 2.0 With PKCE でサードパーティトークンを生成 6. Tesla Fleet API へリクエストを行う
© 2024 CData Software Japan, LLC | www.cdata.com/jp 本日の詳しい手順は Postman
アドベントカレンダーで公開中! https://www.cdata.com/jp/blog/tesla-fleet-api-postman
© 2024 CData Software Japan, LLC | www.cdata.com/jp 開発・本番環境の入手方法 https://ts.la/kazuya99717
みんな悩む環境構築ですが、テスラはとっても簡単♪ URLにアクセスして、数クリックとクレジットカード情報を 入力するだけで入手できます♪
© 2024 CData Software Japan, LLC | www.cdata.com/jp でも、どうしても環境構築が難しい場合は? Postman
にはMock API を作る機能 があるよ! https://learning.postman.com/docs/designing-and- developing-your-api/mocking-data/setting-up-mock/
© 2024 CData Software Japan, LLC | www.cdata.com/jp テスラアカウントの作成 https://www.tesla.com/ja_jp/
環境を入手したら、テスラアカウントを準備 このアカウントを使って、API リクエストのために必要な OAuth のアプリケーション登録を行う 環境を入手している場合、すでにテスラアカウントは作っ ているものと思います 実は環境は持っていなくても、アカウント作成は可能な ので、おそらくアプリ作成はどんな人でも可能なのではな いか?
© 2024 CData Software Japan, LLC | www.cdata.com/jp アプリケーションリクエストの作成① 会社の情報や作成するアプリの名前、説
明などを入力
© 2024 CData Software Japan, LLC | www.cdata.com/jp アプリケーションリクエストの作成② アプリをホストしているサイト、OAuth
用リ ダイレクトURL、スコープなどを指定
© 2024 CData Software Japan, LLC | www.cdata.com/jp アプリケーションリクエストの作成③
© 2024 CData Software Japan, LLC | www.cdata.com/jp Public Key・Private
Key ペアを作成・ホストする • Tesla APIの連携で一番面倒なのがここ • Tesla API のVehicle Commands(エアコンの ON/OFFやキーの開け締めのコマンド等)を実行す るために公開キー・秘密キーの利用プロセスが必要 • 予め公開キーと秘密キーを作成し、さらに公開キーを APIがアクセスできるパブリックなWebSiteの.well- known配下でホストする必要がある • 私は今回 Azure Static Web Appsを使って、下 記コマンドで生成した公開キーをホスト >openssl ecparam –name prime256v1 – genkey –noout –out private.pem >openssl ec -in private.pem -pubout -out public.pem
© 2024 CData Software Japan, LLC | www.cdata.com/jp Public KeyをホストしたサイトをTesla
API で登録 パートナー用アクセストークンをOAuth 2.0 のClient Credentials で取得 ホストしたWebSiteのドメインを partner_accoountsエンドポイントで登録 ※予めアプリのAllowed Originにも登録しておく
© 2024 CData Software Japan, LLC | www.cdata.com/jp サードパーティトークンの取得 Property
Value Token Name Tesla Fleet API Grant type Authorization Code (With PKCE) Callback URL https://oauth.pstmn.io/v1/callback Auth URL https://auth.tesla.com/oauth2/v3/authorize Access Token URL https://auth.tesla.com/oauth2/v3/token Client ID 作成したアプリのClient IDを指定 Client Secret 作成したアプリのClient Secret を指定 Code Challenge Method SHA-256 Code Verifier Automatically generated Scope openid offline_access vehicle_device_data vehicle_cmds vehicle_charging_cmds State (empty) Client Authentication Send client credentials in body 認証・認可方式がOAuth 2.0 With PKCE だけど、 Postman がうまくハンドリングしてくれる!
© 2024 CData Software Japan, LLC | www.cdata.com/jp サードパーティトークンの取得 以前のAPIとは異なり、しっかりと認可する機能の確認が
求められた上で、Access Tokenが取得できる
© 2024 CData Software Japan, LLC | www.cdata.com/jp あとは取得したToken を使って実際にAPI
を試す! 認可したユーザーが保有する車両の情報は以下の 「/api/1/vehicles」を使って取得可能 GET /api/1/vehicles HTTP/1.1 Host: fleet-api.prd.na.vn.cloud.tesla.com Authorization: Bearer {{サードパーティトークン}} 車両の詳細なデータが取得したい場合は GET /vehicles/{{id}}/vehicle_data ただし、Teslaが起動していないとすべてのデータが取得 できないので、予め起動する必要あり POST /vehicles/{{id}}/wake_up
© 2024 CData Software Japan, LLC | www.cdata.com/jp ちなみに、どんなデータが取れたんですか?
© 2024 CData Software Japan, LLC | www.cdata.com/jp 仙台から大宮までドライブしてきました
© 2024 CData Software Japan, LLC | www.cdata.com/jp データパイプラインツール・CData Sync
を使って Tesla のデータを1分間隔でDB に収集・BI ツールで可視化 REST API HTTP JSON SQL BigQuery CData Sync https://www.cdata.com/jp/sync/
© 2024 CData Software Japan, LLC | www.cdata.com/jp
© 2024 CData Software Japan, LLC | www.cdata.com/jp
© 2024 CData Software Japan, LLC | www.cdata.com/jp
© 2024 CData Software Japan, LLC | www.cdata.com/jp
© 2024 CData Software Japan, LLC | www.cdata.com/jp