SplatNet2
SplatNet2 是一个框架,使用内部和外部 API 生成 iksm_session,从 SplatNet2 获取 JSON。
安装
需求
- iOS13.0+
- Xcode 11+
CocoaPods
pod 'SplatNet2'
SPM(Swift Package Manager)
dependencies: [
.package(url: "https://github.com/tkgstrator/SplatNet2.git")
]
使用方法
session_token_code
生成 iksm_session 需要 session_token_code
和 session_token_code_verifier
,这两个是通过随机字节字符串提供的。此外,session_token_code
可由 oauth_url
提供如 此处。
这个 网站可以帮助你获取它们。它们(auth_url
和 auth_code_verifier
)可重复使用,无需重复访问。
获取 iksm_session
import SplatNet2
import SwiftyJSON
do {
var response: JSON = JSON()
let session_token_code = "YOUR SESSION TOKEN CODE"
let session_token_code_verifier = "YOUR SESSION TOKEN CODE VERIFIER"
response = try SplatNet2.getSessionToken(session_token_code, session_token_code_verifier)
let session_token = response["session_token"].stringValue
response = try SplatNet2.genIksmSession(session_token)
} catch (error) {
// Error handling
}
重新生成 iksm_session
会话令牌没有过期时间,所以通过会话令牌重新生成 iksm_session 所需时间更少。
import SplatNet2
import SwiftyJSON
do {
let session_token = "YOUR SESSION TOKEN"
response = try SplatNet2.genIksmSession(session_token)
} catch (error) {
// Error handling
}
昵称和图标
Nintendo 提供了通过 nsaid(被称为 nsa-data-id/pid/principal id)获取昵称和图标的 API。
import SplatNet2
import SwiftyJSON
do {
let iksm_session = "YOUR IKSM SESSION"
let nsaids: [String] = "NSAID's ARRAY"
response = try SplatNet2.getPlayerNickname(nsaids, iksm_session)
} catch (error) {
// Error handling
}
错误处理
如果任天堂更改API方法,SplatNet2可能会以以下格式返回错误。
enum APIError: Error {
case Response(String, String)
}
- 9400 获取Splatoon访问令牌时请求无效
- 9002 Iksm会话无效/已过期(需要重新生成)
- 9403 获取Splatoon令牌时令牌无效
- 9406 OAuth会话未经授权(任天堂API更改 X-ProductVersion?)
- 9427 需要升级(Nintendo Switch Online应用更新)
- 9999 未知错误