fitbit-api-client
Version:
## ⚠️ This SDK is not ready for production
125 lines • 5.18 kB
TypeScript
import { AuthToken, HeartRateResponse, OAuthSession, PartialAuthToken, SleepResponse, StepsResponse } from './models';
import { DetailLevel, FitbitScope, MinuteDetailLevel } from './types';
import { CaloriesResponse } from './models';
import { SpO2IntradayResponse } from './models/spo2/spo2';
import { ProfileResponse } from './models/profile';
import { WeightResponse } from './models/body';
type Props = {
clientId: string;
clientSecret: string;
token?: PartialAuthToken;
session?: OAuthSession;
};
export declare class FitbitClient {
private readonly clientSecret;
private readonly clientId;
private token?;
private session?;
constructor({ clientId, clientSecret, token, session }: Props);
/**
* 認証関連のメソッドを提供するオブジェクト
*/
auth: {
setToken: (token: PartialAuthToken) => void;
getAccessToken: () => Promise<string>;
refreshAccessToken: () => Promise<AuthToken>;
isAccessTokenExpired: () => boolean;
};
oauth: {
createSession: (redirectUrl: string | null, usePkce: boolean) => OAuthSession;
getAuthorizationUrl: (scopes: readonly FitbitScope[]) => string;
setSession: (session: OAuthSession) => void;
handleOAuthCallback: (code: string, state: string) => Promise<AuthToken>;
};
profile: {
getProfileRaw: () => Promise<unknown>;
getProfile: () => Promise<ProfileResponse>;
};
heartRate: {
getHeartRateIntraday: (localDate: string, offsetFromUTCMillis: number, detailLevel: DetailLevel) => Promise<HeartRateResponse>;
getHeartRateIntradayRaw: (localDate: string, detailLevel: DetailLevel) => Promise<unknown>;
};
activity: {
getStepsIntraday: (localDate: string, offsetFromUTCMillis: number, detailLevel: MinuteDetailLevel) => Promise<StepsResponse>;
getStepsIntradayRaw: (localDate: string, detailLevel: MinuteDetailLevel) => Promise<unknown>;
getCaloriesIntraday: (localDate: string, offsetFromUTCMillis: number, detailLevel: MinuteDetailLevel) => Promise<CaloriesResponse>;
getCaloriesIntradayRaw: (localDate: string, detailLevel: MinuteDetailLevel) => Promise<unknown>;
getDistanceIntradayRaw: (localDate: string, detailLevel: MinuteDetailLevel) => Promise<unknown>;
getElevationIntradayRaw: (localDate: string, detailLevel: MinuteDetailLevel) => Promise<unknown>;
getFloorsIntradayRaw: (localDate: string, detailLevel: MinuteDetailLevel) => Promise<unknown>;
getSwimmingStrokesRaw: (localDate: string, detailLevel: MinuteDetailLevel) => Promise<unknown>;
};
sleep: {
getSleepLog: (localDate: string, offsetFromUTCMillis: number) => Promise<SleepResponse>;
getSleepLogRaw: (localDate: string) => Promise<unknown>;
};
temperature: {
getTemperatureCoreSummaryRaw: (localDate: string) => Promise<unknown>;
};
spO2: {
getSpO2Intraday: (localDate: string, offsetFromUTCMillis: number) => Promise<SpO2IntradayResponse | null>;
getSpO2IntradayRaw: (localDate: string) => Promise<unknown>;
};
body: {
getWeightLog: (localDate: string, offsetFromUTCMillis: number) => Promise<WeightResponse>;
getWeightLogRaw: (localDate: string) => Promise<unknown>;
};
/**
* セッションを作成する
*/
private createSession;
/**
* セッションを設定する
*/
private setSession;
/**
* 認証URLを取得する
*/
private getAuthorizationUrl;
/**
* OAuth2.0のコールバックを処理する
* @throws {Error} sessionが設定されていない場合
*/
private handleOAuthCallback;
/**
* トークンを設定するメソッド
*/
private setToken;
private validateToken;
/**
* アクセストークンが期限切れまたはnullの場合にtrueを返す
*/
private isAccessTokenExpired;
/**
* アクセストークンを取得する
* @throws {Error} アクセストークンが有効切れ
*/
private getAccessToken;
/**
* リフレッシュトークンを使用してアクセストークンを再取得する
* ※リフレッシュトークンは一度使用したら無効になる為、返却されたトークンを保存するようにお願いします。
* @throws {Error} リフレッシュトークンが設定されていない場合
*/
private refreshAccessToken;
private getProfileRaw;
private getProfile;
private getHeartRateIntraday;
private getHeartRateIntradayRaw;
private getStepsIntraday;
private getStepsIntradayRaw;
private getCaloriesIntraday;
private getCaloriesIntradayRaw;
private getDistanceIntradayRaw;
private getElevationIntradayRaw;
private getFloorsIntradayRaw;
private getSwimmingStrokesRaw;
private getSleepLog;
private getTemperatureCoreSummaryRaw;
private getSleepLogRaw;
private getSpO2Intraday;
private getSpO2IntradayRaw;
private getWeightLog;
private getWeightLogRaw;
}
export {};
//# sourceMappingURL=fitbit-client.d.ts.map