-
Notifications
You must be signed in to change notification settings - Fork 0
Quick Start
BookHsu-shinher edited this page Feb 5, 2026
·
2 revisions
這份快速開始聚焦在「安裝 → 建立 SDK → 回覆訊息」。
dotnet add package Libro.LineMessageAPIusing Libro.LineMessageApi;
var channelAccessToken = Environment.GetEnvironmentVariable("LINE_CHANNEL_ACCESS_TOKEN");
if (string.IsNullOrWhiteSpace(channelAccessToken))
{
throw new InvalidOperationException("缺少 LINE_CHANNEL_ACCESS_TOKEN");
}
var sdk = new LineSdkBuilder(channelAccessToken)
.UseBot()
.UseMessages()
.Build();using Libro.LineMessageApi;
using Libro.LineMessageApi.LineMessageObject;
using Libro.LineMessageApi.LineReceivedObject;
using System.Text.Json;
public async Task<IActionResult> Webhook(HttpRequestMessage request, string channelSecret, string channelAccessToken)
{
if (!LineChannel.VaridateSignature(request, channelSecret))
{
return new UnauthorizedResult();
}
var body = await request.Content.ReadAsStringAsync();
var payload = JsonSerializer.Deserialize<LineReceivedMsg>(body);
var replyToken = payload?.events?[0]?.replyToken;
if (!string.IsNullOrWhiteSpace(replyToken))
{
var sdk = new LineSdkBuilder(channelAccessToken)
.UseMessages()
.Build();
await sdk.Messages!.SendReplyMessageAsync(replyToken, new TextMessage("收到!"));
}
return new OkResult();
}using Libro.LineMessageApi;
using Microsoft.Extensions.DependencyInjection;
var services = new ServiceCollection();
services.AddSingleton(sp =>
{
var channelAccessToken = Environment.GetEnvironmentVariable("LINE_CHANNEL_ACCESS_TOKEN");
if (string.IsNullOrWhiteSpace(channelAccessToken))
{
throw new InvalidOperationException("缺少 LINE_CHANNEL_ACCESS_TOKEN");
}
return new LineSdkBuilder(channelAccessToken)
.UseBot()
.UseMessages()
.Build();
});
var serviceProvider = services.BuildServiceProvider();
var sdk = serviceProvider.GetRequiredService<LineSdk>();- 參考頁:常用類別與功能入口
- 範例頁:可直接執行的完整專案