SplatNet2 0.1.8

SplatNet2 0.1.8

tkgstrator 维护。



 
依赖关系
Alamofire= 5.4.1
SwiftyJSON= 5.0.0
 

SplatNet2 0.1.8

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_codesession_token_code_verifier,这两个是通过随机字节字符串提供的。此外,session_token_code 可由 oauth_url 提供如 此处

这个 网站可以帮助你获取它们。它们(auth_urlauth_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 未知错误