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
370
電気自動車 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
87
Tesla の公式API をPostman から実行し、 車両データの取得やエアコンの操作などを行ってみよう!
sugimomoto
0
210
Postman Collectionを使って社内外とのAPI連携開発・コラボレーションを円滑にできたお話
sugimomoto
0
480
グローバルチームプロジェクトでAPI 連携ソフトウェアを開発するにあたって ちょっとした工夫でプロジェクトの摩擦を軽減したお話
sugimomoto
0
140
API 連携開発効率化のために Backlog API Postman Collection を自動生成した話
sugimomoto
1
2.1k
Tesla API Hack! Power Platform から Tesla API を使ってみよう
sugimomoto
0
1k
200 Over API 接続のコンポーネントベンダーが語る! 「APIのここがツライよ 15選」
sugimomoto
0
630
SaaS・クラウド時代におけるバラバラデータへの取り組み方 Dynamics 365 Ver
sugimomoto
0
310
Power Platform のために押さえておくと嬉しい API のエコシステムのお話 #JPPUG #PowerPlatform #MSIgniteTheTour #MSIgnite #JPPUGWinter19
sugimomoto
0
710
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
0
210
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
490
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
ハイテク休憩
sat
PRO
2
170
UI State設計とテスト方針
rmakiyama
2
640
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
540
サーバーなしでWordPress運用、できますよ。
sogaoh
PRO
0
100
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Building Applications with DynamoDB
mza
91
6.1k
Building Adaptive Systems
keathley
38
2.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Building an army of robots
kneath
302
44k
Adopting Sorbet at Scale
ufuk
73
9.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
It's Worth the Effort
3n
183
28k
The Pragmatic Product Professional
lauravandoore
32
6.3k
The Cost Of JavaScript in 2023
addyosmani
45
7k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
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