日本語
機能とサポート状況
Vylinejs はプロトコルライブラリであり、チャットアプリケーションを同梱していません。 以下の表は、現在のライブラリの機能と保守状況を示すものです。 LINE のサーバーが非公式プロトコルを今後も受け入れることを保証するものではありません。
機能の対応状況
| 機能 | 状況 | 注記 |
|---|---|---|
| パスワードと QR によるログイン | 対応 | QR コードの描画はホストアプリケーションが行います。LINE がアカウントや端末の確認を求める場合があります。 |
| 保存済みセッションの復元 | 対応 | 保存済みセッションを更新し、更新後の認証情報を指定されたストレージアダプターに保存します。 |
| E2EE メッセージの処理 | アカウント固有の制限付きで対応 | 過去の世代の鍵を保持します。一部の既存アカウントでは、識別情報や鍵データをローカルで検証できない場合があります。 |
| Talk のメッセージとイベント | 対応 | client.listen() は AbortSignal による停止に対応します。ハンドラー内で Promise の拒否を捕捉してください。 |
| LIFF | LINE のエンドポイントが許可する範囲で対応 | メッセージの共有、同意処理の再試行、ビューの発行を含みます。現在のメソッドは生成されたパッケージドキュメントを参照してください。 |
| アルバム/Moa | 対応 | LEGY 経由で LINE のアルバム REST エンドポイントを使用します。LINE 側の API 変更の影響を受ける可能性があります。 |
| 1対1の通話とメディアのヘルパー | 一部対応 | シグナリングとメディアのヘルパーは実装済みです。実際の動作は端末とネットワークにより異なります。特定の処理に依存する前に通話検証に関する注記を確認してください。 |
| グループ通話 | 一部対応 | グループ用ルート、音声、参加者一覧、映像の構成要素は実装済みです。実際の相手との互換性は保証されません。グループ通話を参照してください。 |
| ビデオ通話 | 一部対応 | エンコード済み VP8 フレームを送受信します。カメラからの取り込み、エンコード、表示、実際の相互接続は呼び出し側とランタイムが担います。ビデオ通話を参照してください。 |
| Square/OpenChat | 旧来の API として保持。積極的なサポートの対象外 | 互換性のため LINEJS から保持しています。Vylinejs は Square の継続的な保守や新機能の開発を約束していません。 |
| LINE VOOM/Timeline | 利用不可 | VOOM は 2026-09-30 に終了しました。互換 API は非推奨で、リクエストの送信前に失敗します。代替エンドポイントは提供しません。 |
| ブラウザーでの実行 | UDP による通話メディアは非対応 | 通話トランスポートは UDP ソケットを使用します。それ以外のブラウザーでの利用も、検証済みランタイムの対象には含まれていません。 |
LIFF によるメッセージ共有
LIFF による共有は、LINE のエンドポイントを利用する非公式の連携です。 利用可否や制限は過去に大きく変わっており、今後も LINE 側で変更される可能性があります。 API が成功を返しても、相手への配信や継続的な利用が保証されるわけではありません。 利用前に LINE の最新ルールを確認し、対象アカウントで動作を確かめてください。 同意、アカウントごとの上限、メッセージ制限を回避する目的では使用しないでください。
Client を作成してログインした後、client.liff.sendLiff() でメッセージを共有できます。 テキストメッセージの sentBy は表示用の送信者情報を追加します。 認証済みの LINE アカウント自体を変更する機能ではありません。
ts
import { liff } from "@nezumi0627/vylinejs";
await client.liff.sendLiff({
to: "u-recipient-mid",
messages: [
liff.text("LIFF で共有したメッセージ", {
label: "Vylinejs",
iconUrl: "https://example.com/avatar.png",
}),
],
});1 件だけ送る場合は、簡易 API の client.liff.shareMessage(to, message) も使えます。 どちらの API も同意を求められる場合があり、LINE 側の制限やアカウントの状態によって失敗します。 利用前にLIFF API リファレンスを確認してください。
ランタイム
ライブラリの開発とテストには Deno 2.7.14 を使用しています。 トランスポートの互換性確認には Node.js 24 を使用しています。 JSR は Node.js、npm、Bun 向けに npm 互換パッケージを提供していますが、このプロジェクトではすべてのランタイムとバージョンの組み合わせで完全なテストを実施しているわけではありません。 ドキュメントサイトは Node.js と npm を使用します。 ブラウザーでは通話トランスポートに必要な UDP を利用できません。
機能別ガイドとサンプルコード
| 機能 | ガイド | サンプルコード |
|---|---|---|
| ログインとセッション | 認証 | example/talk/ping.ts |
| Talk のメッセージとイベント | メッセージとイベント | example/talk/all_methods.ts |
| 1対1の音声通話 | 音声通話 | example/call/call_on_command.ts |
| グループ通話 | グループ通話 | example/call/call_on_command.ts |
| ビデオ通話 | ビデオ通話 | example/call/video.ts |
| 着信 | 着信への応答 | example/call/incoming.ts |
| E2EE | E2EE と保存済みの鍵 | API とソースコードの比較 |
| アルバム / Moa | アルバムのガイド | example/moa/list-albums.ts |
性能に関する説明の範囲
Vylinejs は、ファイルストレージ、メッセージのエンコード、パケット処理、バッファーのコピーなど、計測した特定の処理を改善しています。 計測値は、入力条件を明示したローカルのマイクロベンチマークによるものです。 アプリケーション全体の遅延を示すものでも、すべての処理が LINEJS より高速であることを約束するものでもありません。 ベンチマークの環境、結果、再現コマンドは安定性に関する注記に記載しています。
サービスの変更とデータの保護
サービスとプロトコルは LINE が管理しています。 サービスは予告なく変更または終了される可能性があります。 認証情報と E2EE 鍵は非公開の保存場所で管理し、ログイン端末を変更する前にバックアップを作成してください。 復号エラーを解消するために過去の E2EE 鍵を消去しないでください。 認証情報の扱いは認証とセッションの保存を参照してください。