Table of Contents

Namespace Line.OpenApi.Messaging

Classes

MessagingClient

Facade for the Messaging API. It unifies the two Kiota clients for the control plane (api.line.me) and the data plane (api-data.line.me) so callers do not have to think about the host difference.

Usage: var line = MessagingClient.CreateWithStaticToken("CHANNEL_ACCESS_TOKEN"); await line.Api.V2.Bot.Message.Push.PostAsync(pushRequest); // send (control plane) var stream = await line.Blob.V2.Bot.Message[messageId].Content.GetAsync(); // fetch (data plane)

RichMenuClient

Facade for the Rich Menu use case. Rich Menu spans both Messaging hosts — control operations on api.line.me and image upload/download on api-data.line.me — so this facade wraps a MessagingClient (which already solves the host split / BaseUrl handling) and exposes the common create → image → set-default → link flow through thin convenience methods.

The generated builders remain available via Messaging (.Api for control, .Blob for image data plane) for the less common operations (alias CRUD, bulk link/unlink, batch) that are intentionally not surfaced here.

The image helpers are the main ergonomic value: SetImageFromFileAsync(string, string, CancellationToken) infers the required image/png / image/jpeg content type from the file extension, which LINE mandates for the upload (the generated builder requires it as an explicit argument).

Usage: var rich = RichMenuClient.CreateWithStaticToken("CHANNEL_ACCESS_TOKEN"); var id = await rich.CreateAsync(new RichMenuRequest { /* ... */ }); await rich.SetImageFromFileAsync(id!, "menu.png"); await rich.SetDefaultAsync(id!);