· kaynak dev.to (home feed)
LINE'ın mesaj düzenleme denemesi: botlar Edit ve Unsend webhook'larını nasıl ele almalı
LINE, LINE Labs üzerinden ücretsiz bir mesaj düzenleme denemesi başlattı ve bir dev.to anlatımı, botların senkron kalabilmek için Edit ve Unsend webhook'larını, sıra dışı teslimatı ve tekilleştirmeyi nasıl işlemesi gerektiğini gösteriyor.

LINE, LINE Labs'ta mesaj düzenlemeyi açtı
20 Ağustos 2026'da LINE, LINE Taiwan'daki Developer Relations ekibinin lideri Evan Lin'in bir dev.to makalesine göre, LINE Labs üzerinden ücretsiz bir "Mesajı Düzenle" özelliği denemesi duyurdu. Mobil LINE sürüm 26.12.0 veya daha yenisini kullananlar bu özelliği Ana Sayfa, Ayarlar, LINE Labs altından etkinleştirebilir; bunun ardından metin mesajları, bire bir ve grup sohbetlerinde gönderildikten sonra 15 dakika içinde düzenlenebilir. Keep Notes'ta düzenleme altı güne kadar yapılabilir. Fotoğraflar, videolar, sesli mesajlar, dosyalar ve sticker'lar düzenlenemez; düzenlenen mesajlar sohbet içinde "Düzenlendi" etiketiyle gösterilir ve önceki sürümleri görmenin ya da geri yüklemenin bir yolu yoktur.
Geliştiricileri doğrudan ilgilendiren bir kısıtlama ise şudur: LINE Official Account'larla yapılan bire bir sohbetlerde düzenleme hiç desteklenmez; dolayısıyla Edit olaylarının tetiklenmesi için bir botun önce bir grup sohbetine eklenmesi gerekir.
Botlar için iki yeni webhook olayı
Messaging API, bir kullanıcı mesajı geri çektiğinde iletilen mevcut Unsend olayının yanı sıra, messageEdited tipli bir Edit olayını sunuyor. dev.to anlatımına göre Edit olayı; düzenlenen metni, bir timestamp'i, bir reply token'ı ve bir mesaj ID'sini taşır ve bu mesaj ID'si, orijinal mesaj olayındakiyle aynıdır. Bu da onu kararlı bir anahtar yapar: bir bot, ilk mesaj geldiğinde bir kayıt oluşturabilir ve her düzenleme geldiğinde aynı kaydın üzerine yazabilir. Edit olayı ayrıca orijinal olayınkinden farklı, kendi reply token'ını taşır; böylece bot o belirli düzenlemeye yanıt verebilir.
Mark as Read API'yi kullanan geliştiriciler bir alan farkına dikkat etmeli: Edit olayında markAsReadToken bulunmaz, dolayısıyla standart mesaj olayı işleme yolu olduğu gibi yeniden kullanılamaz. Lin, SDK yükseltmesinden sonra webhook fixture'larını yeniden oynatarak bu uyumsuzlukların yakalanmasını öneriyor.
Demo: bir grup alışverişi botu
Lin, her iki olayı da denemek için bir grup alışverişi (group buying) botu geliştirdi. Grup lideri bir mağaza ve son tarihle bir alışveriş başlatır; katılımcılar siparişlerini "İncili Süt Çayı / Az Şeker / Az Buz / 1" gibi eğik çizgile ayrılmış bir biçimde gönderir ve biri bu mesajı düzenlediğinde bot miktarı, şeker oranını, buz seviyesini ve toplamı günceller. Biri siparişini geri çektiğinde bot onu siler ve yeniden hesaplar. Bir "Mevcut Siparişler" komutu özeti bir Flex Message olarak döndürür ve örnek kod GitHub'da yayımlanmıştır.
Bu senaryo bilerek seçilmiştir: grup alışverişindeki en yaygın iki an, fikri değiştirme ve iptal etme, Edit ve Unsend ile tam olarak örtüşür ve gözlemciler, botun düzenlemeyi yalnızca onaylamadığından değil, bir webhook'un gerçekten backend durumunu değiştirdiğinden miktarlar ve toplamlardan emin olabilir.
İki uygulama tuzağı
İlk tuzak sıralamadır. Bir kullanıcı aynı mesajı kısa sürede birkaç kez düzenleyebilir ve ortaya çıkan webhook'ların oluşturuldukları sırayla ulaşacağı garanti edilmez; platform olayları yeniden de gönderebilir. Lin, resmi öneriyi izleyerek en büyük timestamp'e sahip olayı en güncel durum olarak ele almayı ve halihazırda saklanandan daha eski düzenlemeleri atmayı öneriyor. Tekilleştirme ise webhookEventId üzerinden ayrı olarak ele alınır: bu, aynı olayın iki kez işlenmesini önlerken, timestamp kontrolü de daha eski bir düzenlemenin daha yeni birinin üzerine yazmasını engeller.
İkinci tuzak doğrulamadır. Düzenlenmiş bir mesaj artık geçerli bir sipariş olmayabilir; kullanıcı bir siparişi "Birdenbire içecek istemiyorum" gibi düz bir metne dönüştürmüş olabilir. Eski siparişi tutmak, düzenlemeyi yok saymak kadar tutarlılığı bozar; bu nedenle demo saklanan içeriği temizler, kaydı geçersiz olarak işaretler ve geçici olarak işleyen toplamdan çıkarır.
Neden önemli
Mesaj düzenleme, sohbet botu tasarımında köklü bir varsayımı yıkıyor: gelen bir mesajın değişmez bir girdi olduğu. Edit ve Unsend olaylarını da tüketmeden mesajları ayrıştırıp kalıcı hale getiren botlar, kullanıcıların gerçekte gördüğü durumdan sessizce kopacaktır; çünkü bot hiçbir şey değişmemiş gibi yanıtlamaya devam eder ve bu sapma fark edilmez. Buradaki sıralama ve tekilleştirme kaygıları da LINE'a özgü değil; bunlar, en az bir kez teslim (at-least-once delivery) yapan tüm webhook tabanlı entegrasyonlar için geçerlidir. Düzenleme ve geri çekme mesajlaşma platformlarına yayıldıkça, en güncel kullanıcı niyetini ilk teslimde varsayılan bir değer değil de uzlaştırılması gereken bir şey olarak ele almak, bot backend'leri için temel bir gereklilik haline geliyor.
- #line
- #webhooks
- #bots
- #messaging-api
- #api-design