Asosiy tarkibga o'tish

24. LINE (plagin)

  1. LINE OpenClaw’ga LINE Messaging API orqali ulanadi. 26. Plagin gateway’da webhook qabul qiluvchisi sifatida ishlaydi va autentifikatsiya uchun kanalga kirish tokeningiz + kanal maxfiy kalitingizdan foydalanadi.
  2. Holati: plagin orqali qo‘llab-quvvatlanadi. 28. Shaxsiy xabarlar, guruh chatlari, media, joylashuvlar, Flex xabarlar, shablon xabarlar va tezkor javoblar qo‘llab-quvvatlanadi. 29. Reaksiyalar va thread’lar qo‘llab-quvvatlanmaydi.

30. Plagin talab qilinadi

  1. LINE plaginini o‘rnating:
32. openclaw plugins install @openclaw/line
  1. Lokal checkout (git repozitoriydan ishga tushirilganda):
34. openclaw plugins install ./extensions/line

35. Sozlash

    1. LINE Developers akkauntini yarating va Konsolni oching: https://developers.line.biz/console/
    1. Provider yarating (yoki tanlang) va Messaging API kanalini qo‘shing.
    1. Kanal sozlamalaridan Channel access token va Channel secret ni nusxalab oling.
    1. Messaging API sozlamalarida Use webhook ni yoqing.
    1. Webhook URL’ni gateway endpoint’ingizga o‘rnating (HTTPS talab qilinadi):
41. https://gateway-host/line/webhook
  1. Gateway LINE’ning webhook tekshiruviga (GET) va kiruvchi hodisalarga (POST) javob beradi.
  2. Agar sizga maxsus yo‘l kerak bo‘lsa, channels.line.webhookPath yoki channels.line.accounts.<id> ni sozlang44. .webhookPath va URL’ni mos ravishda yangilang.

45. Sozlash

  1. Minimal konfiguratsiya:
47. {
  channels: {
    line: {
      enabled: true,
      channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
      channelSecret: "LINE_CHANNEL_SECRET",
      dmPolicy: "pairing",
    },
  },
}
  1. Muhit o‘zgaruvchilari (faqat standart akkaunt uchun):
  • LINE_CHANNEL_ACCESS_TOKEN
  • LINE_CHANNEL_SECRET
  1. Token/maxfiy fayllar:
2. {
  channels: {
    line: {
      tokenFile: "/path/to/line-token.txt",
      secretFile: "/path/to/line-secret.txt",
    },
  },
}
  1. Bir nechta akkauntlar:
4. {
  channels: {
    line: {
      accounts: {
        marketing: {
          channelAccessToken: "...",
          channelSecret: "...",
          webhookPath: "/line/marketing",
        },
      },
    },
  },
}

5. Kirishni boshqarish

  1. To‘g‘ridan-to‘g‘ri xabarlar (DM) sukut bo‘yicha juftlashga o‘rnatilgan. 7. Noma’lum jo‘natuvchilarga juftlash kodi beriladi va ular tasdiqlanmaguncha xabarlari e’tiborsiz qoldiriladi.
8. openclaw pairing list line
openclaw pairing approve line <CODE>
  1. Ruxsat etilgan ro‘yxatlar va siyosatlar:
  • channels.line.dmPolicy: pairing | allowlist | open | disabled
    1. channels.line.allowFrom: DM uchun ruxsat etilgan LINE foydalanuvchi IDlari
  • channels.line.groupPolicy: allowlist | open | disabled
    1. channels.line.groupAllowFrom: guruhlar uchun ruxsat etilgan LINE foydalanuvchi IDlari
    1. Guruh bo‘yicha alohida sozlamalar: channels.line.groups.<groupId>15. .allowFrom
  1. LINE IDlari katta-kichik harflarga sezgir. 17. Yaroqli IDlar quyidagicha ko‘rinadi:
    1. Foydalanuvchi: U + 32 ta hex belgi
    1. Guruh: C + 32 ta hex belgi
    1. Xona: R + 32 ta hex belgi

21. Xabarlar xatti-harakati

    1. Matn 5000 belgidan bo‘laklarga ajratiladi.
    1. Markdown formatlash olib tashlanadi; kod bloklari va jadvallar imkon qadar Flex kartalarga aylantiriladi.
    1. Oqimli javoblar buferlanadi; agent ishlayotgan paytda LINE to‘liq bo‘laklarni yuklanish animatsiyasi bilan qabul qiladi.
    1. Media yuklab olishlar channels.line.mediaMaxMb bilan cheklanadi (sukut bo‘yicha 10).

26. Kanal ma’lumotlari (boy xabarlar)

  1. Tezkor javoblar, joylashuvlar, Flex kartalar yoki shablon xabarlarni yuborish uchun channelData.line dan foydalaning.
28. {
  text: "Here you go",
  channelData: {
    line: {
      quickReplies: ["Status", "Help"],
      location: {
        title: "Office",
        address: "123 Main St",
        latitude: 35.681236,
        longitude: 139.767125,
      },
      flexMessage: {
        altText: "Status card",
        contents: {
          /* Flex payload */
        },
      },
      templateMessage: {
        type: "confirm",
        text: "Proceed?",
        confirmLabel: "Yes",
        confirmData: "yes",
        cancelLabel: "No",
        cancelData: "no",
      },
    },
  },
}
  1. LINE plagini Flex xabarlar uchun tayyor sozlamalarga ega /card buyrug‘ini ham taqdim etadi:
30. /card info "Welcome" "Thanks for joining!"

31. Nosozliklarni bartaraf etish

    1. Webhook tekshiruvi muvaffaqiyatsiz: webhook URL HTTPS ekanligiga va channelSecret LINE konsolidagi qiymatga mos kelishiga ishonch hosil qiling.
    1. Kirish hodisalari yo‘q: webhook yo‘li channels.line.webhookPath ga mos kelishini va shlyuz LINE’dan yetib borilishi mumkinligini tasdiqlang.
    1. Media yuklab olish xatolari: media sukut bo‘yicha limitdan oshsa, channels.line.mediaMaxMb ni oshiring.