LoginSignup
1
0

More than 3 years have passed since last update.

GoでFortniteのデータを取得するパッケージを軽い気持ちで作りはじめたら結構きちんと作ってしまった

Posted at

まえがき

<(_ _ )> テスト書いてないじゃんってツッコミはやめてください。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につなぎ込みができるヽ(=´▽`=)ノ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0