UNPKG

fitbit-api-client

Version:
125 lines 5.18 kB
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