まえがき
<(_ _ )> テスト書いてないじゃんってツッコミはやめてください。1日1つ何かしら作るっていうAdvent Calendarで作ってるものなので。後のせで書きます。
動機
「 Hey Google、 Fortniteの結果を教えて
」ってやつ作ろうと思ったけど、そもそも結果ってどうやって取るんだろうってなったので作ってみた。
海外で他にも作ってる人いたけど、自分の使いたいところしか対応してなかったり、メンテされてなかったりしたので自作しました。
そうそうに諦めたこと
ゲーム中の通信を解析して、それを元に公式のAPIを非公式に叩きにいくこと。
PCとかだったらその手のものが結構あってGithubとかにもライブラリがあがっているのだけれど、Nintendo Switchに関してはコミュニティには出回ってなくて商用(?)でつくられたものぐらいしかSwitchにデータが取れそうになかったので。
利用したAPI
Fortnite Tracker
https://fortnitetracker.com/site-api
Tracker Network(TRN)が提供しているFortniteのAPI
TRNはAPIは利用していなかったものの他のゲームでランキングとかお世話になってたことがあったので
# 作ったもの
Relese: https://github.com/usk81/go-fortnite/releases/tag/v0.0.1
Page: https://github.com/usk81/go-fortnite
ご利用前に
トークンを取得してください。
会員登録(無料)して、フォームを埋めていったら簡単に取得できます。
情報は結構適当でよさそう
https://fortnitetracker.com/site-api
インストール
go get -u github.com/usk81/go-fortnite
例
s, _ := New(nil, "your access token")
// 統計情報の取得
// 例.
// Platform: gamepad (nintendo switch)
// nickname: Shady Grove
result, err = s.BRPlayerStats("gamepad", "Shady Grove")
// 対戦履歴
result, err = s.MatchHistory("player account id")
// ストアの情報
result, err = s.Store()
// チャレンジ情報
// note: API自体が生きてなさそう。取得できる情報が少し古かった
result, err = s.Challenges()
注意
APIさわってると、fortnite特有のコードが含まれているのですが、以下のような意味らしいです。
自分のライブラリでは、一部置き換えを行ってますが、全て置き換えできているわけじゃないので、使われる方がいたら参考にしてください
code | 意味 |
---|---|
p2 | Solo |
p10 | Duo |
p9 | Squad |
CLIで動かせるサンプルも作ってみた
本当に動くの?って突っ込まれそうなので、簡単なCLIも作ってみた。
ゴミ混ざるのが嫌なので、別リポジトリにしました
// 統計情報の取得
go run main.go -t your-token stats gamepad player-nick-name
// 対戦履歴
go run main.go -t your-token history player-account-id
// ストアの情報
go run main.go -t your-token store
// チャレンジ情報
go run main.go -t your-token challenges
これでスマートアシスタントやchatbotにつなぎ込みができるヽ(=´▽`=)ノ