fortnite-client
所属分类:WEB开发
开发工具:TypeScript
文件大小:233KB
下载次数:0
上传日期:2018-12-12 08:26:28
上 传 者:
sh-1993
说明: Fortnite的REST客户端,允许从Epic game的游戏服务器请求统计信息、游戏新闻和服务状态。
(A REST client for Fortnite which allows requesting stats, game news and service status from Epic Game s game servers.)
文件列表:
fortnite-client-develop (0, 2018-12-12)
fortnite-client-develop\.codecov.yml (355, 2018-12-12)
fortnite-client-develop\.editorconfig (206, 2018-12-12)
fortnite-client-develop\.env.example (158, 2018-12-12)
fortnite-client-develop\.npmignore (389, 2018-12-12)
fortnite-client-develop\.prettierrc (100, 2018-12-12)
fortnite-client-develop\.travis.yml (470, 2018-12-12)
fortnite-client-develop\.vscode (0, 2018-12-12)
fortnite-client-develop\.vscode\launch.json (1198, 2018-12-12)
fortnite-client-develop\.vscode\settings.json (78, 2018-12-12)
fortnite-client-develop\git-banner.jpg (187846, 2018-12-12)
fortnite-client-develop\package-lock.json (90647, 2018-12-12)
fortnite-client-develop\package.json (1944, 2018-12-12)
fortnite-client-develop\src (0, 2018-12-12)
fortnite-client-develop\src\enums (0, 2018-12-12)
fortnite-client-develop\src\enums\group-type.enum.ts (152, 2018-12-12)
fortnite-client-develop\src\enums\leaderboard-type.enum.ts (191, 2018-12-12)
fortnite-client-develop\src\enums\platform.enum.ts (68, 2018-12-12)
fortnite-client-develop\src\enums\static-token.enum.ts (236, 2018-12-12)
fortnite-client-develop\src\enums\stats-type.enum.ts (734, 2018-12-12)
fortnite-client-develop\src\enums\time-window.enum.ts (112, 2018-12-12)
fortnite-client-develop\src\fortnite-client.ts (11940, 2018-12-12)
fortnite-client-develop\src\index.ts (1631, 2018-12-12)
fortnite-client-develop\src\interfaces (0, 2018-12-12)
fortnite-client-develop\src\interfaces\converted-fortnite-types (0, 2018-12-12)
fortnite-client-develop\src\interfaces\converted-fortnite-types\converted-stats-item.interface.ts (628, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-client-credentials.interface.ts (85, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-client-options.interface.ts (404, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types (0, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\access-token.interface.ts (457, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\build-information.interface.ts (168, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\check-status.interface.ts (344, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\game-news.interface.ts (3987, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\leaderboards.interface.ts (219, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\lookup.interface.ts (66, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\oauth-exchange.interface.ts (108, 2018-12-12)
fortnite-client-develop\src\interfaces\fortnite-types\stats-item.interface.ts (168, 2018-12-12)
... ...
![Fortnite REST Api Client banner](https://raw.githubusercontent.com/weeco/fortnite-client/develop/git-banner.jpg)
# Fortnite REST Client
[![Build Status](https://travis-ci.org/weeco/fortnite-client.svg?branch=master)](https://travis-ci.org/weeco/fortnite-client)
[![npm](https://img.shields.io/npm/v//fortnite-client.svg)](https://www.npmjs.com/package/fortnite-client)
[![codecov](https://codecov.io/gh/weeco/fortnite-client/branch/master/graph/badge.svg)](https://codecov.io/gh/weeco/fortnite-client)
A promise based REST client for querying ingame data (such as stats) against the official Fortnite game servers. A valid Fortnite account is required to access these endpoints.
### Features
- [x] Promise based methods to get any Fortnite player's stats
- [x] Fully OOP and typesafe
- [x] Throws exceptions if exceeding predefined timeouts or 4xx / 5xx status codes in response.
- [x] Written in TypeScript (provides always up to date type definitions
- [x] Covers all publicly accessible endpoints
- [x] Integration tests
- [x] No token capturing or similiar needed, just pass your username/pass into the config
**And coming up on the roadmap...**
- [ ] Event for incoming friend requests :raising_hand:
- [ ] Sending messages to friends :e-mail:
- [ ] Event for incoming friend messages :inbox_tray:
## Table of contents
- [Fortnite REST Client](#fortnite-rest-client)
- [Features](#features)
- [Table of contents](#table-of-contents)
- [Getting started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Basic usage](#basic-usage)
- [Class FortniteClient](#class-fortniteclient)
- [Instantion](#instantion)
- [Available endpoints](#available-endpoints)
- [Class LauncherClient](#class-launcherclient)
- [Instantion](#instantion)
- [Available endpoints](#available-endpoints)
- [Contributors](#contributors)
- [License](#license)
## Getting started
### Prerequisites
- [Node.js 8.0+](http://nodejs.org)
- Valid Fortnite account (email and password)
- Launcher & Client token (can both be sniffed using Fiddler)
### Installation
`$ npm install --save fortnite-client`
_**Note:** Typescript definitions are included, there is no need for installing types from the Definetely Typed Repo._
### Basic usage
Typescript (2.0+):
```typescript
import { FortniteClient, IFortniteClientCredentials, Lookup, PlayerStats } from 'fortnite-client';
const credentials: IFortniteClientCredentials = {
email: 'weeco91@gmail.com',
password: 'my-strong-password'
};
const api: FortniteClient = new FortniteClient(credentials);
async function bootstrap(): Promise {
try {
await api.login();
const ninjaLookup: Lookup = await api.lookup('ninja');
const ninjaStats: PlayerStats = await api.getBattleRoyaleStatsById(ninjaLookup.id);
console.log(ninjaStats.toJson());
} catch (err) {
console.error(err);
}
}
bootstrap();
```
Javascript (requires ES6+):
```javascript
const FortniteClient = require('fortnite-client').FortniteClient;
const credentials = {
email: 'weeco91@gmail.com',
password: 'my-strong-password'
};
const api = new FortniteClient(credentials);
async function bootstrap() {
try {
await api.login();
const ninjaLookup = await api.lookup('ninja');
const ninjaStats = await api.getBattleRoyaleStatsById(ninjaLookup.id);
console.log(ninjaStats.toJson());
} catch (err) {
console.error(err);
}
}
bootstrap();
```
## Class FortniteClient
The class FortniteClient offers all available endpoints as promise based functions. Each function returns a Promise which resolves to a class instances (e. g. PlayerStats). In order to serialize the data to JSON you can just call the instance's `toJson()` method, which will return an object.
### Instantion
When creating an instance of FortniteClient you can pass a couple options which are described below:
```typescript
/**
* Creates a new fortnite client instance.
* @param credentials The account's credentials which shall be used for the REST requests.
* @param options Library specific options (such as a response timeout until it throws an exception).
*/
constructor(credentials: IFortniteClientCredentials, options?: IFortniteClientOptions);
export interface IFortniteClientOptions {
/**
* Timeout for awaiting a response until it fails. Defaults to 5000 milliseconds.
*/
timeoutMs?: number;
/**
* Tunnel requests through a proxy of your choice. If you want to inspect requests with Fiddler you have to
* setup the proxy here.
*/
proxy?: IProxyOptions;
}
export interface IProxyOptions {
host: string;
port: number;
}
```
### Available endpoints
| Route | Returns |
| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ |
| `static CHECK_STATUS()` | Promise\ |
| `static GET_GAME_NEWS()` | Promise\ |
| `login()` | Promise\ |
| `getBattleRoyaleStatsById(userId: string, timeWindow: TimeWindow, convertJSONOutput: boolean=true)` | Promise\ | IStatsItem[]> |
| `getStore(locale: string = 'en-US')` | Promise\ |
| `getLeaderboards(leaderboardType: LeaderboardType, platform: Platform, groupType: GroupType, timeWindow: TimeWindows, limit: number = 50)` | Promise\ |
| `lookup(username: string)` | Promise\ |
| `lookupByIds(accountIds: string[])` | Promise\
近期下载者:
相关文件:
收藏者: