Skip to content

メソッド ​

Talk のメソッド ​

低レベルの TalkService メソッドは、すべて client.base.talk から利用できます。

使用例:

ts
await client.base.talk.sendMessage({
    to: "u...",
    text: "Hello, Vylinejs!",
    e2ee: true,
});

この例は、テキストメッセージを e2ee で暗号化してユーザーに送信します。

LIFF ​

client.liff.sendLiff() は、検証済みの LIFF メッセージを最大 5 件まで送信します。 1 件なら client.liff.shareMessage()、複数件なら client.liff.shareMessages() も使えます。 liffId でクライアントの既定値以外の LIFF アプリを選べます。 forceIssue はトークンを再発行し、tryConsent は同意フローを制御します。

ts
import { liff } from "@nezumi0627/vylinejs";

await client.liff.sendLiff({
	to: "u-recipient-mid",
	messages: [
		liff.text("こんにちは", {
			label: "Vylinejs",
			iconUrl: "https://example.com/avatar.png",
		}),
	],
	tryConsent: true,
});

テキストの sentBy は任意の表示用送信者情報です。 認証済みアカウントを変更するものではありません。 LIFF の共有には制限があり、仕様も変わる可能性があります。 API の成功は相手への配信を保証しません。 利用前に機能状況と LIFF の注意を確認してください。

Square のメソッド ​

Square/OpenChat のメソッドは LINEJS から引き継いだもので、旧来の API として残されています。 Vylinejs は Square を積極的にサポートしておらず、継続的な保守も約束していません。 以下の例は、既存のメソッドの形式のみを示します。

低レベルの SquareService メソッドは、すべて client.base.square から利用できます。

使用例:

ts
await client.base.square.findSquareByInvitationTicket({
    request: {
        invitationTicket: "INVITATION_TICKET",
    },
});

この例は、招待コードから Square を取得します。

BaseClient ​

単純な API アクセスや独自のイベントハンドラーが必要な場合は、BaseClient を使用できます。

使用例:

ts
import { BaseClient } from "@nezumi0627/vylinejs/base";


const client = new BaseClient({ device: "DESKTOPWIN", version: "9.7.0.3556" });
client.on("pincall", (pin) => {
});

client.on("qrcall", (qrUrl) => {
});

client.on("update:authtoken", (authToken) => {
});

await client.loginProcess.login({
	authToken: "...",
});

await client.loginProcess.login({
	email: "...",
	password: "...",
	pincode: "123456",
});

await client.loginProcess.login({
	qr: true,
});
await client.loginProcess.ready();

client.square // = SquareService
client.talk // = TalkService


// event polling
const polling = client.createPolling();

for await (const operation of polling.listenTalkEvents()) {
}

for await (const event of polling.listenSquareEvents()) {
}

LINE の REST エンドポイントを直接呼び出す ​

アルバム(Moa)などの一部の LINE サブシステムは、Thrift ではなく LEGY プロキシを経由した HTTPS 上の JSON で通信します。 一方、Vylinejs の既定の getHeader("GET") ヘルパーは Thrift 向けであり、accept: application/x-thrift と content-type: application/x-thrift を設定します。 この既定値で JSON REST エンドポイントを呼び出すと、HTTP 200 とともに {"code":102001,"message":"一時的なエラーが発生しました。"} が返る場合があります。

REST リクエストを自分で組み立てる場合は、両方のヘッダーを application/json に上書きしてください。

ts
const headers = {
  ...client.base.request.getHeader("GET"),
  accept: "application/json",
  "content-type": "application/json; charset=UTF-8",
  "X-Line-ChannelToken": token,
  "X-Line-Mid": client.base.profile!.mid,
};
const res = await client.base.fetch(url, {
  method: "POST",
  headers,
  body: new Uint8Array(),
  signal: AbortSignal.timeout(client.base.config.timeout),
});
if (!res.ok) throw new Error(`REST request failed: HTTP ${res.status}`);
const data = await res.json();
if (data.code !== undefined && data.code !== 0) {
  throw new Error(`REST request failed: code ${data.code}`);
}

アルバムの操作には client.base.moa を使用してください。 必要なヘッダーの設定と、HTTP エラーおよびアプリケーション側のエラーの確認を行います。

LINE VOOM は 2026-09-30 に終了しました。 LINE の案内によると、サービス終了に伴い、アクセス、投稿の閲覧と作成、投稿データの復元も終了しています(公式のお知らせ)。 Vylinejs はソースコードの互換性のため、旧 VOOM と Timeline のエクスポートを一時的に残していますが、非推奨としています。 これらはトークンの発行やリクエストの送信を行わず、直ちに失敗します。 これらのエンドポイントを代替するものはありません。

LINE 公式アカウントには別の「投稿」機能がありますが、旧 VOOM API とは異なり、このライブラリは代替機能として公開していません(LINE for Business のお知らせ)。

Vylinejsは非公式のLINEクライアントライブラリです。MITライセンスで公開されています。