FoundKey microblogging server.
Find a file
Francis Dinh 28f244479c
Add comment property to DriveFile
Some components of Misskey like the image viewer use this property, but it hasn't been defined in the type definition itself.
2022-07-21 21:20:45 -04:00
.github Create config.yml 2021-08-28 18:01:59 +09:00
docs update contribution guides 2021-08-28 15:42:07 +09:00
etc Resolve #38 2022-01-14 01:33:42 +09:00
src Add comment property to DriveFile 2022-07-21 21:20:45 -04:00
test improve test 2022-01-02 02:11:25 +09:00
test-d Add tests 2021-06-27 21:17:42 +09:00
.editorconfig tab 2021-05-16 18:22:19 +09:00
.eslintignore fix lint 2021-12-28 00:45:47 +09:00
.eslintrc.js Update .eslintrc.js 2022-01-31 21:29:29 +09:00
.gitignore Add ignore config 2021-05-15 01:53:41 +09:00
api-extractor.json introduce api-extractor 2021-07-30 13:01:52 +09:00
CHANGELOG.md 0.0.14 2022-01-30 11:31:19 +09:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-08-23 23:42:32 +09:00
codecov.yml codecov integration 2021-06-25 09:46:40 +09:00
CONTRIBUTING.md update contribution guides 2021-08-28 15:42:07 +09:00
jest.config.ts wip 2021-05-14 13:49:40 +09:00
LICENSE update copyright 2022-01-01 21:53:36 +09:00
package-lock.json 0.0.14 2022-01-30 11:31:19 +09:00
package.json 0.0.14 2022-01-30 11:31:19 +09:00
README.md 2021-10-17 00:00:40 +09:00
tsconfig.json introduce api-extractor 2021-07-30 13:01:52 +09:00

misskey.js

Strongly-typed official Misskey SDK for browsers/Node.js.

Test codecov

NPM

JavaScript(TypeScript)用の公式MisskeySDKです。ブラウザ/Node.js上で動作します。

以下が提供されています:

  • ユーザー認証
  • APIリクエスト
  • ストリーミング
  • ユーティリティ関数
  • Misskeyの各種型定義

対応するMisskeyのバージョンは12以上です。

Install

npm i misskey-js

Usage

インポートは以下のようにまとめて行うと便利です。

import * as Misskey from 'misskey-js';

便宜上、以後のコード例は上記のように* as Misskeyとしてインポートしている前提のものになります。

ただし、このインポート方法だとTree-Shakingできなくなるので、コードサイズが重要なユースケースでは以下のような個別インポートをお勧めします。

import { api as misskeyApi } from 'misskey-js';

Authenticate

todo

API request

APIを利用する際は、利用するサーバーの情報とアクセストークンを与えてAPIClientクラスのインスタンスを初期化し、そのインスタンスのrequestメソッドを呼び出してリクエストを行います。

const cli = new Misskey.api.APIClient({
	origin: 'https://misskey.test',
	credential: 'TOKEN',
});

const meta = await cli.request('meta', { detail: true });

requestの第一引数には呼び出すエンドポイント名、第二引数にはパラメータオブジェクトを渡します。レスポンスはPromiseとして返ります。

Streaming

misskey.jsのストリーミングでは、二つのクラスが提供されます。 ひとつは、ストリーミングのコネクション自体を司るStreamクラスと、もうひとつはストリーミング上のチャンネルの概念を表すChannelクラスです。 ストリーミングを利用する際は、まずStreamクラスのインスタンスを初期化し、その後でStreamインスタンスのメソッドを利用してChannelクラスのインスタンスを取得する形になります。

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });
const mainChannel = stream.useChannel('main');
mainChannel.on('notification', notification => {
	console.log('notification received', notification);
});

コネクションが途切れても自動で再接続されます。

チャンネルへの接続

チャンネルへの接続はStreamクラスのuseChannelメソッドを使用します。

パラメータなし

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });

const mainChannel = stream.useChannel('main');

パラメータあり

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });

const messagingChannel = stream.useChannel('messaging', {
	otherparty: 'xxxxxxxxxx',
});

チャンネルから切断

Channelクラスのdisposeメソッドを呼び出します。

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });

const mainChannel = stream.useChannel('main');

mainChannel.dispose();

メッセージの受信

ChannelクラスはEventEmitterを継承しており、メッセージがサーバーから受信されると受け取ったイベント名でペイロードをemitします。

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });
const mainChannel = stream.useChannel('main');
mainChannel.on('notification', notification => {
	console.log('notification received', notification);
});

メッセージの送信

Channelクラスのsendメソッドを使用してメッセージをサーバーに送信することができます。

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });
const messagingChannel = stream.useChannel('messaging', {
	otherparty: 'xxxxxxxxxx',
});

messagingChannel.send('read', {
	id: 'xxxxxxxxxx'
});

コネクション確立イベント

Streamクラスの_connected_イベントが利用可能です。

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });
stream.on('_connected_', () => {
	console.log('connected');
});

コネクション切断イベント

Streamクラスの_disconnected_イベントが利用可能です。

const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });
stream.on('_disconnected_', () => {
	console.log('disconnected');
});

コネクションの状態

Streamクラスのstateプロパティで確認できます。

  • initializing: 接続確立前
  • connected: 接続完了
  • reconnecting: 再接続中