Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Mastodon

for Mastodon API

using superagent for request, you will handle promises

Hierarchy

  • Mastodon

Index

Constructors

constructor

  • new Mastodon(accessToken: string, baseUrl?: string): Mastodon
  • Parameters

    • accessToken: string

      access token from OAuth2 authorization

    • Default value baseUrl: string = "mstdn.jp"

      hostname or base URL

    Returns Mastodon

Properties

Static NO_REDIRECT

NO_REDIRECT: string = NO_REDIRECT

Static Scope

Scope: Scope = Scope

Methods

del

  • del(path: string): Promise<__type>
  • DELETE request to mastodon REST API

    Parameters

    • path: string

      relative path from ${baseUrl}/api/v1/ or absolute path

    Returns Promise<__type>

get

  • get<T>(path: string, params?: object): Promise<T>
  • GET request to mastodon REST API

    Type parameters

    • T

    Parameters

    • path: string

      relative path from ${baseUrl}/api/v1/ or absolute path

    • Default value params: object = {}

      Query parameters

    Returns Promise<T>

patch

  • patch<T>(path: string, params?: object): Promise<T>
  • PATCH request to mastodon REST API

    Type parameters

    • T

    Parameters

    • path: string

      relative path from ${baseUrl}/api/v1/ or absolute path

    • Default value params: object = {}

      Form data

    Returns Promise<T>

post

  • post<T>(path: string, params?: object): Promise<T>
  • POST request to mastodon REST API

    Type parameters

    • T

    Parameters

    • path: string

      relative path from ${baseUrl}/api/v1/ or absolute path

    • Default value params: object = {}

      Form data

    Returns Promise<T>

stream

  • receive Server-sent Events from Mastodon Streaming API

    Parameters

    • path: string

      relative path from ${baseUrl}/api/v1/streaming/ or absolute path 'public', 'public/local', 'user' and 'hashtag?tag=${tag}' are available.

    • Default value reconnectInterval: number = 1000

      interval of reconnect

    Returns StreamListener

    streamListener, which inherits from EventEmitter and has event, 'update', 'notification', 'delete', and so on.

Static createApp

  • createApp(client_name: string, options?: Partial<object>, baseUrl?: string): Promise<AppData>
  • Create an application

    First, POST /api/v1/apps

    Parameters

    • client_name: string

      your application's name

    • Default value options: Partial<object> = {redirect_uris: NO_REDIRECT,scopes: Scope.DEFAULT}

      Form Data

    • Default value baseUrl: string = "mstdn.jp"

      target of base URL

    Returns Promise<AppData>

Static fetchAccessToken

  • fetchAccessToken(client_id: string, client_secret: string, code: string, redirect_uri?: string, baseUrl?: string): Promise<TokenData>
  • Fetch OAuth access token

    Parameters

    • client_id: string

      will be generated by #createApp or #registerApp

    • client_secret: string

      will be generated by #createApp or #registerApp

    • code: string

      will be generated by the link of #generateAuthUrl or #registerApp

    • Default value redirect_uri: string = NO_REDIRECT

      must be the same uri as the time when you register your OAuth application

    • Default value baseUrl: string = "mstdn.jp"

      base URL of the target

    Returns Promise<TokenData>

Static generateAuthUrl

  • generateAuthUrl(client_id: string, options?: Partial<object>, baseUrl?: string): string
  • generate authorization url

    Parameters

    • client_id: string

      your OAuth app's client ID

    • Default value options: Partial<object> = {redirect_uri: NO_REDIRECT,scope: Scope.DEFAULT}

      as property, redirect_uri and scope are available, and must be the same as when you register your app

    • Default value baseUrl: string = "mstdn.jp"

      base URL of the target

    Returns string

Static get

  • get(path: string, params?: object, baseUrl?: string): Promise<any>
  • unauthorized GET request to mastodon REST API

    Parameters

    • path: string

      relative path from ${baseUrl}/api/v1/ or absolute path

    • Default value params: object = {}

      Query parameters

    • Default value baseUrl: string = "mstdn.jp"

      base URL of the target

    Returns Promise<any>

Static registerApp

  • registerApp(client_name: string, options?: Partial<object>, baseUrl?: string): Promise<AppData>
  • Wrapper for personal OAuth Application (createApp and generateAuthUrl)

    First, POST /api/v1/apps only client_name is required, so others are optional. Secound, generate an authorization url. finally, return promise of OAuth.AppData instance, which has client_id, client_secret, url, and so on.

    Parameters

    • client_name: string

      Form Data, which is sent to /api/v1/apps

    • Default value options: Partial<object> = {scopes: Scope.DEFAULT,redirect_uris: NO_REDIRECT}

      Form Data, which is sent to /api/v1/apps. and properties should be snake_case

    • Default value baseUrl: string = "mstdn.jp"

      base URL of the target

    Returns Promise<AppData>

Generated using TypeDoc