Membina di atas Antimatter

Panduan ini adalah untuk pembangun. Ia merangkumi skrip dan bot yang menggunakan API, penyepaduan yang dibina atas webhook dan arahan garis miring, aplikasi (plug-in) yang menambah ciri ke pelayan dan aplikasi web, serta pembinaan Antimatter dari sumber untuk menyumbang kepadanya.

Cara untuk meluaskan Antimatter

Pilih alat yang paling ringan yang dapat melakukan tugas. Empat yang pertama tidak memerlukan akses ke pelayan itu sendiri; aplikasi dijalankan di dalamnya.

AlatFungsinyaSesuai untuk
API RESTSemua yang dilakukan oleh aplikasi: mesej, saluran, orang, fail, tetapan. WebSocket menghantar peristiwa apabila ia berlaku.Skrip, penyegerakan dengan sistem lain, klien khusus.
Webhook masukURL rahsia yang menghantar mesej ke saluran apabila sesuatu menghantar JSON kepadanya.Amaran, hasil CI, pemantauan, pemberitahuan daripada alat lain.
Webhook keluarAntimatter memanggil URL anda apabila mesej dalam saluran awam bermula dengan perkataan pencetus, atau apabila seseorang memilih tindakan anda dalam menu mesej, dan memuat naik balasan anda.Automasi yang dipandu oleh sembang yang ringkas, menghantar mesej ke alat lain.
Arahan garis miringOrang menaip /something; Antimatter memanggil URL anda dan menunjukkan jawapan anda kepada mereka atau kepada saluran.Pencarian, tindakan yang dimulakan daripada sembang.
BotAkaun yang dibuat untuk program, dengan token mereka sendiri, tag BOT, dan mesej serta dialog interaktif.Pembantu, pemberi notifikasi, apa-apa yang bercakap dengan orang.
Aplikasi (plug-in)Kod yang dijalankan di dalam pelayan (Go) dan dalam aplikasi web (React): hook pada setiap mesej, menu baharu, panel, jenis mesej, halaman.Ciri: undian, nota, kalendar, penyepaduan yang memerlukan antara muka pengguna.

Dalam antara muka, orang memanggil plug-in "aplikasi". Panduan ini menggunakan "aplikasi (plug-in)" di mana kedua-dua perkataan membantu, kerana kod, API dan konfigurasi masih menggunakan "plug-in".

Keserasian dengan Mattermost

Antimatter adalah forka Mattermost. Kebanyakan yang berfungsi dengan pelayan Mattermost berfungsi dengan Antimatter.

Apa yang sama

  • API REST di bawah /api/v4, pengesahannya, WebSocket dan format kesalahannya. Pelayan melaporkan versi 12.0.0, jadi klien dan aplikasi yang menyemak versi pelayan melihat Mattermost yang terkini.
  • Webhook dan arahan garis miring, termasuk muatan Slack yang serasi.
  • API dan hook pelayan plugin: Antimatter mengekalkannya seperti sedia ada. Kod pelayan dibina menggunakan modul Go yang sama, github.com/mattermost/mattermost/server/public. Antimatter hanya menambah kaedah untuk perkhidmatan AI-nya (lihat Perkhidmatan AI).
  • Rejisti plugin aplikasi web: setiap kaedah register… dalam rejisti Mattermost wujud dalam kedua-dua antara muka web Antimatter.
  • Perpustakaan klien: klien Go model.Client4 dan klien TypeScript @mattermost/client (lihat Perpustakaan klien).
  • Benjolan plugin: .tar.gz dengan manifest plugin.json. Plugin yang ditandatangani dengan kunci Mattermost dipasang, begitu juga yang ditandatangani dengan kunci Antimatter.

Apa yang berbeza

  • Dua antara muka web. Antara muka baharu, Fusion, adalah lalai; antara muka Mattermost klasik masih tersedia. Fusion merender kebanyakan komponen plugin, tetapi meletakkan sesetengah di tempat berbeza dan meninggalkan beberapa yang lain. Aplikasi boleh mengetahui antara muka mana yang sedang berjalan. Lihat Menyokong antara muka Fusion.
  • API tambahan. Antimatter menambah titik akhir untuk ciri-cirinya sendiri: atribut komuniti, tamat masa, mesej di bahagian atas, permintaan mesej, penggantian saluran dan kategori, eksport saluran, pemindahan benang, sambungan model, tindakan mesej, dan medan baharu pada komuniti. Lihat Apa yang Antimatter tambah kepada API.
  • Ciri mesej tambahan. Lampiran mesej boleh menunjukkan peringkat paip dan carta kecil; hantaran boleh menjadi balasan dalaman atau spoiler.
  • Hook aplikasi web tambahan untuk aplikasi: item menu "+" komposer, tab pemilih emoji, panel dalam paparan saluran, kaki di bawah saluran bar sisi, entri pada halaman integrasi, paparan tambah dan urus pemilih emoji, dan panel sisi yang dibuka semula di tempat asalnya dalam tetingkap baharu. Lihat Hook yang hanya ada pada Antimatter.
  • Tiada lesen. Setiap ciri tersedia tanpa kunci lesen. Titik akhir lesen, percubaan dan peningkatan perusahaan telah dibuang; GET /api/v4/license/client kekal untuk klien yang meminta. Sesetengah aplikasi yang dibina untuk edisi berbayar Mattermost memeriksa lesen sendiri dan enggan dijalankan.
  • Nama. Pasukan dipanggil komuniti dalam antara muka, tetapi API dan kod masih menyebut team. Pemboleh ubah persekitaran menggunakan awalan AM_, alat baris arahan ialah amctl dan binari pelayan ialah antimatter.

Di mana kod berada

Semuanya sumber terbuka, dalam organisasi AntimatterChat di GitHub. Setiap repositori berfungsi pada cawangan main.

RepositoriKandungan
antimatterPelayan (Go, dalam server/), kedua-dua antara muka web (webapp/fusion dan webapp/channels), klien TypeScript dan amctl.
antimatter-dockerImej Docker, dengan aplikasi terikat, dan fail compose.
antimatter-plugin-*Satu repositori untuk setiap aplikasi terikat: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents dan metrics.
gifs-serverPerkhidmatan GIF dan pelekat kendiri yang digunakan oleh aplikasi GIFs.
desktop-app, mobile-app, push-proxyAplikasi desktop dan mudah alih, serta perkhidmatan yang meneruskan pemberitahuan push ke telefon.
antimatter.chatLaman web ini dan dokumentasinya.
communityIsu dan perbincangan untuk setiap bahagian Antimatter.

Sebelum anda bermula

  • Dapatkan pelayan ujian. Cara paling pantas ialah imej Docker: lihat Memasang Antimatter. Untuk bekerja pada Antimatter itu sendiri, lihat Membina dari sumber.
  • Semak apa yang dibenarkan oleh pelayan. Beberapa ciri integrasi dimatikan secara lalai dan memerlukan pentadbir sistem: token akses peribadi, akaun bot, penggantian nama pengguna dan ikon, serta muat naik aplikasi. Setiap halaman menyatakan tetapan yang diperlukan.
  • Tahu URL laman web anda. Contoh menggunakan https://chat.example.com. Gantikan dengan alamat pelayan anda.

Dalam panduan ini

  • API REST: pengesahan, sumber utama, paginasi, ralat, had kadar, WebSocket, perpustakaan klien, dan penambahan Antimatter.
  • Webhooks: webhooks masuk dan keluar, muatan, lampiran dan kad.
  • Arahan garis miring: arahan tersuai, permintaan dan responsnya, auto-isi.
  • Bot dan mesej interaktif: akaun bot, butang, menu dan dialog.
  • Menulis aplikasi: susun atur plugin, hook pelayan, daftar aplikasi web, Fusion, tetapan, storan, terjemahan dan pakej.
  • Membina dari sumber: pelayan, antara muka web, imej Docker dan aplikasi.
  • Sumbang: isu, permintaan tarikan, gaya, terjemahan, keselamatan dan lesen.
Soalan dialu-alukan dalam perbincangan komuniti. Laporkan pepijat dalam isu komuniti.