Cara LINE mengirim webhook

LINE memberi server bot 2 detik; redelivery nonaktif secara default. Yang terverifikasi, yang tidak disebut LINE, dan verifier Node untuk x-line-signature.

Perilaku pengiriman

Diambil dari dokumentasi resmi vendor, terakhir diperiksa 2026-08-06. Jika vendor tidak menyebut angka, tabel ini juga tidak mencantumkannya.

Batas waktu respons2 detik

Dihitung sebagai request_timeout jika server bot belum menjawab dalam 2 detik

Periksa apakah handler Anda menjawab tepat waktu

Percobaan ulangWebhook redelivery, nonaktif secara default (aktifkan di pengaturan Messaging API channel tersebut); jumlah dan intervalnya tidak diungkapkan
Berhenti mencobaDapat menangguhkan pengiriman webhook jika server bot terus gagal menerimanya; ambang batasnya tidak dipublikasikan
Sumberhttps://developers.line.biz/en/docs/messaging-api/receiving-messages/

Tanda tangan

Diverifikasi dengan verifier yang berfungsi dan dibuktikan oleh test suite, bukan dibaca dari dokumentasi. Terakhir diverifikasi 2026-08-20.

AlgoritmaHMAC-SHA256
Payload bertanda tanganraw body
Encodingbase64
Headerx-line-signature = base64
Toleransitidak diberlakukan

Verifikasi

Raw body dari permintaan, byte demi byte, sebelum parsing JSON apa pun. Setiap skema di halaman ini rusak begitu framework melakukan serialisasi ulang pada payload.

const crypto = require("node:crypto");

// base64(HMAC-SHA256(channel secret, raw body))
const expected = crypto
  .createHmac("sha256", channelSecret) // Messaging API → Basic settings
  .update(rawBody)
  .digest("base64");
const received = Buffer.from(req.headers["x-line-signature"] ?? "");
const wanted = Buffer.from(expected);
// timingSafeEqual throws on a length mismatch, so check that first.
const valid =
  received.length === wanted.length && crypto.timingSafeEqual(received, wanted);

Yang sering menjebak

Redelivery tersedia, tetapi nonaktif secara default: fitur ini harus diaktifkan di pengaturan Messaging API channel, dan LINE tidak mengungkapkan jumlah maupun intervalnya. Sampai Anda mengaktifkannya, setiap pengiriman yang gagal adalah pesan yang hilang.

LINE dapat menangguhkan pengiriman webhook sepenuhnya jika server bot terus gagal menerima, dan ambangnya tidak dipublikasikan. Relay yang menjawab dalam sekitar satu detik, dan hanya menolak apa yang tidak bisa disimpannya, menghilangkan sebagian besar variabel itu.

Baca juga

AnyHook berada di depan endpoint yang menerima webhook dari LINE: AnyHook menjawab dalam sekitar satu detik, mencoba ulang sesuai jadwalnya sendiri saat server Anda mati, dan menyimpan setiap event agar dapat diputar ulang (replay). Ganti satu URL, kode Anda tetap.

Cara kerjanya →