A laza egyre népszerűbb eszköz a vállalkozásoknak és csapatoknak, akiknek azonnal kommunikálniuk kell. Bár esetleg - egyes esetekben - napi zavarnak tekinthető, nagy automatizálási potenciállal rendelkezik, amely több tucat integrációt kínál, hogy mindent egy helyen tartson, és lassan helyettesíti az e-maileket.
Sokféleképpen lehet integrálni a rendszereket laza; A platform még egy márkás botot is biztosít, amely lehetővé teszi az emlékeztetőket vagy az üzeneteket a digitális munkaterületen. És még több együttműködési javításokért próbálja meg ezeket felhő tároló lehetőségek.
A laza különböző entitásokat kínál, amelyeket "botoknak" lehetnek:
Ebben a bemutatóban különösen a "bot felhasználók", hogyan kell programozni őket (nézd meg az útmutatót a Legjobb kódszerkesztők hogy könnyebbé tegye az életedet), és megfeleljen az Ön igényeinek. Ez feltételezi, hogy hozzáférhet egy laza helyhez, ahol hozzáadhat alkalmazásintegrációt. Ha még nem része, szabadon hozhatók létre.
Az alábbiakban egy Nodejs-alkalmazást építünk, hogy post-to point-to és reagáljunk bizonyos üzenetekre egy laza csatornán. A "Slackbots" modult használjuk, amely a laza valós idejű üzenetküldő API csomagolása.
Ön is érdekli a weboldal? Válasszon egy ragyogó weboldal építője és felső web hosting szolgáltatás, hogy menjen vele.
Ez a bemutató feltételezi, hogy a csomópont telepítve van. Ha nem, akkor most. Azután Töltse le az eszközöket szükséged lesz. Kiindulópontot és keretet biztosítunk a bemutató számára.
Az egészben olyan modulokat használunk, mint a "Slackbots" és a "csomópont-laza-feltöltés". A telepítési parancs futtatásával érhetők el.
npm install
A "bot felhasználói" integrációt használjuk a lazaságért. Ehhez egy jelzést kell kapnunk, ha "https: // & lt; Youslackworkspace & gt; .slack.com / apps / A0F7ys25r-bots ', és kattintson a" Konfiguráció hozzáadása "gombra.
Válasszon egy felhasználónevet a bot számára (később felülírhatjuk ezt a programot egy későbbi szakaszban), és erősítse meg.
Hívja meg a botot a kívánt csatornára.
A bot felhasználó létrehozásával kap egy tokenet a következő formátumban:
xoxb-000000-000000-x0x0xxxxx0xxxxx0x
Másolja a tokenet a következő lépéshez.
Környezeti változókat (egy '.env' fájlt) használunk, hogy elkerüljük a kemény kódolást és a titkos tokenek és kulcsok feltárását, mint például a generált laza token, és a csatorna nevét a magán laza munkaterületen.
Menjen előre, és töltse ki a ".env" fájlt a tokenjével, és a csatorna nevét, amelyre meghívta a bot-felhasználót.
Slack_token = xoxb- & lt; yourtoken & gt;
Slack_CHANNEL = & LT; CHANNEL-NAME & GT;
Ez a következő lépés 2 fájlba kerül: "index.js", amelyet rövid pillantást vetünk és "bin / lib / bot.js", ahol a legtöbb fejlesztésünk megtörténik. Az indexfájlban instantiáljuk a botot úgy, hogy nevet adunk, ami "wdmbot".
A "bot.js" -ban az egyes példányok paramétereit vezéreljük a név, token stb.
// index.js
const bot = igényel ('./ bin / lib / bot). init
('Wdmbot);
//bot.js
const botparams = {
icon_emoji: ': robot_face:',
as_user: hamis
};
Hagyja botot;
Funkció initbot (botnév) {
bot = új slackbot ({
token: folyamat.env.slack_token,
Név: Botnév
});
}
Nézd meg a "SendMessage" funkciót. A "posto" módszert használjuk. Ez kezelni fogja a postázást bármilyen típusú csatorna, nyilvános vagy privát. Ha csak magáncsatornákra szeretne küldeni, a "posttogroup" helyett (vagy "posttochannel" -t használhatsz egy nyilvánosságra). Elküldeni az első üzenetünket, hozzáadhatunk kódot az "Initbot" -ban.
FUNKCIÓ INITBOT (BOTNAME) {
bot = / * lásd fent * /
SendMessage ("Itt vagyok!");
}
// most futtassa az "NPM START"
Észreve kellett volna észrevenni a WDMBOT üzenetét a csatornádban. Érdemes megjegyezni, hogy a "Botparams" -ban, az "AS_USER" FALSE-re van beállítva, amely lehetővé teszi számunkra, hogy felülbírálja a nevet és a képet. Ha igaz, akkor a token megszerzése során beállított nevet és képet fogja használni.
Megváltoztathatja a bot emoji-t olyan képre, mint például:
CONST BOTPARAMS = {
Icon_URL: 'https://pbs.twimg.com/
profil_images / 976112552081010688 /
Wllqvj8d_400x400.jpg ',
as_user: hamis
};
Az üzenetek közzététele hasznos, de a bot interaktívabbá tétele érdekében képesnek kell lennünk, hogy képesek legyenek azonosítani a többi felhasználónak a csatornán. Hallgassuk meg az üzenet eseményét, majd nézd meg, mi történik, ha beírjuk a csatornát. Látnunk kell különböző üzenetfajták naplózva, mint a "User_Typing" vagy az "Üzenet".
FUNKCIÓ INITBOT (BOTNAME) {
bot = / * lásd fent * /
bot.on ("üzenet", adat = & gt; {
konzol.log (adatok);
});
}
Ezután válaszolunk a "Üzenet" típusú bejövő üzenetekre, és talán egy adott kifejezésre vagy kulcsszóra, hogy elkerüljék az abszolút mindent. Biztosítjuk, hogy összehasonlítsuk a kisbetűket, ha pontos kifejezést szeretnénk megegyezni. Azt is láthattuk, hogy egy üzenet "magában foglalja" egy adott szót.
bot.on ("üzenet", adat = & gt; {
ha (Data.Type === "üzenet") {
ha (data.text.tolowercase () === 'hol
te?') {
SendMessage ("Itt vagyok!");
}
}
});
A bot felhasználók által küldött üzenetek különböző tulajdonságokkal rendelkeznek, mint például a "bot_message" és a bot_id altípusa. Lehet, hogy korlátozhatja a válaszolást csak az emberi közzétett üzenetekre, hogy elkerülje a botok végtelen hurkot, amelyek magukra vagy egymásra válaszolnak, ha válaszuk magában foglalja az Ön által hallgatott kulcsszavakat.
bot.on ("üzenet", adat = & gt; {
Ha (Data.Type === "üzenet" & amp; & amp; adatok.
altípus! == 'bot_message') {
ha (data.text.tolowercase ().
magában foglalja ("hello")) {
SendMessage (Hello, bot! ");
}
}
});
Ahhoz, hogy személyre szabottabb választ adjon, kihasználhatja a válaszolt üzenet felhasználói azonosítóját. A laza automatikusan átalakítja az azonosítót a felhasználónévhez, ha a címkék "& lt; @ & gt;" címkékben van. Azonosítva, hogy ki válaszol, hasznos lehet, különösen ha több csatorna tagja egyidejűleg kölcsönhatásba lép a botokkal.
bot.on ("üzenet", adat = & gt; {
Ha (Data.Type === "üzenet" & amp; & amp; adatok.
altípus! == 'bot_message') {
ha (data.text.tolowercase ().
magában foglalja ("hello")) {
SendMessage ("hello & lt; @ $ {data.user}
& gt; Bot vagyok! ');
}
}
});
A botok szerkeszthetik a válaszokat is. Csak a sajátjuk. Tehát, ha reméltek elírás foltosodásgátló bot, amely korrigálja az üzeneteket automatikusan, amikor meglát egy hibát, ez nem lehetséges, a jelenlegi felállás.
Az üzenet frissítéséhez új funkciót és globális logikai, amelyet a mi demóban használunk.
Legyen Changerply = FALSE;
Funkció Updatemessage (MessageParams) {
bot.updatemessage (MessageParams.Channel,
MessageParams.Ts, MessageParams.Text,
botparams);
}
Próbáljuk frissíteni a szöveget, amit a bot küld nekünk. Ebben az esetben egy üzeneteseményen, válaszolnunk kell egy bejövő bot üzenetre, így megegyezünk a frissítés feltételeivel, és az eredeti üzenet időbélyegezését is használjuk. Ez olyan laza lehet azonosítani, hogy melyik üzenetet frissítse, abban az esetben, ha mások közzéteszik.
Ha (Data.Type === "üzenet" & amp; & amp; data.subtype! ==
'bot_message' & amp; & amp; data.text) {
ha (data.text.Inludes ('Update')) {
SendMessage ('5-ben frissítem
másodpercek);
changerply = igaz;
}
}
Ha (Data.Type === "üzenet" & amp; & amp; data.subtype ===
'bot_message' & amp; & amp; changerply) {
Changerply = FALSE;
Settinout (() = & gt; {
Updatemessage ({CHANNEL: DATA.CHANNEL,
TS: adatok, szöveg: "Frissítettem"});
}, 5000);
}
Az efemerális üzenetek, mivel a név javasolhatja, ideiglenes. Ezek csak egy felhasználó számára is láthatóak, és törölhetők őket. Ezek az üzenetek hasznosak lehetnek olyan csúcs vagy emlékeztető, amely nem kell tartósan maradnia.
ha (data.text.tolowercase (). Tartalmazza ("hr")) {
EfemeralMessage ({
Csatorna: Data.Channel,
Felhasználó: Data.User,
Szöveg: 'Ha kapcsolatba kell lépnie a HR-vel,
e-mailje a [email protected] '
});
}
// a hívott funkció
Funkció EfemeralMessage (MessageParams) {
bot.postephemeral (MessageParams.Channel,
MessageParams.user, MessageParams.Text,
botparams);
}
Különböző módszereket fog némileg eltérő felhasználói paraméter (akár azonosító vagy név, amely eltér a DISPLAY_NAME és real_name). Azonban csak a felhasználói azonosító elérhető az üzeneteseményeken. Ezért megvalósíthatjuk a felhasználói névkeresést, ha az összes felhasználót és az azonosítót illesztve.
Async funkció GetUpername (UserID) {
visszatérés bot.getusers ()
.hen (adat = & gt; {
Legyen tag = adatok.members.find
(felhasználó = & gt; {
Visszatérő felhasználó.ID === Felhasználói azonos;
});
Visszatérő tag.name;
})
.catch (err = & gt; console.log (hibás));
}
Az új felhasználói kereséssel most már közvetlen üzeneteket küldhetünk egy felhasználónak, amikor az efemerális üzenetek csak nem fognak megtenni. Ne feledje, hogy a közvetlen üzeneteket új / különböző csatornának tekintik, más azonosítóval, mint az eredeti csatorna. A csatorna keresést ugyanúgy is megvalósíthatod, mint a korábban végzett felhasználó.
// az üzeneteseményen
ha (data.text.tolowercase (). Tartalmazza ("bot")) {
senddm ({
Felhasználó: Data.User,
Szöveg: "Hogyan segíthetek?"
});
}
// a hívott funkció
Async funkció Senddm (MessageParams) {
hagyja, hogy a felhasználó = várjon GetUperName-t
(MessageParams.User);
Visszatérés bot.postmessageTouser (felhasználó, üzenet
Params.text, botparams, (hibás, adatok) = & gt; {
konzol.log (hibás)
});
}
A bot felhasználóknak is vannak jogosultságai a fájlok és képek feltöltésére egy csatornára. Ez a funkció nem vonatkozik a "Slackbots" hatálya alá, ezért új feltöltővel kell rendelkeznünk, amint azt az alábbiakban bemutatjuk. Szintén készítsen egy "eszköz" mappát a projektgyökéren, néhány képzel.
Készítsünk egy hívást a következő lépésben meghatározott "Sendimage ()" -ra.
// initbotban ()
Feltöltő = új lazaupload (folyamat.env.
Slack_token);
// az üzenet eseményen
ha (data.text.Inludes ("kép")) {
Ha (! Data.upload) {
/ * Ebben az esetben nincs üzenet
altípus,
így ellenőrizzük, hogy ez nem indult a
Előző feltöltési üzenet * /
Legyen kép = data.text.text.split ('') ;
sendimage ("ez a kép
WANTED ', kép);
}
}
Képeket töltünk fel a feltöltő és a fájlrendszer (FS) modul használatával. Feltéve, hogy a felhasználó üzenetet ebben a formában „kép & lt; imagename.extension & gt;”, és egy ilyen fájl létezik a „eszközök” mappát, a kép lesz olvasni és feltölteni. Ha nem, rendszeres üzenetet küldünk vissza (még egy efemerális is lehet).
Funkció Sendimage (üzenet, kép) {
uploader.uploadfile ({
Fájl: Fs.createAteadstream (path.join
(__dirname, '../../Assets/$ [MIMAGE}')),
Mimetype: 'image / *',
fájltípus: '*',
Cím: Kép,
inicialcomment: üzenet,
Csatornák: csatorna
}, (hibás, adatok) = & gt; {
ha (hibás) {
SendMessage ("Sajnálom, hogy nem találok
$ {image} ');
}
});
}
Több csatornára küldhet ugyanazt a bot-felhasználót, mindaddig, amíg az egyes csatornák tagja, ahol válaszolsz. Hozzunk létre egy "PosttoAll" funkciót, és frissítjük a környezeti változókat, hogy a csatorna nevét vesszővel elválasztott értékekként használják.
CONST CHANNELS = PROCESS.ENV.SLACK_CHANNEL.
hasított(',');
CONSTH csatorna = csatornák ;
Funkció HosttoAll (üzenet) {
csatornák.foreach (csatorna = & gt; {
bot.postto (csatorna, üzenet, botparams);
});
}
Időnként lehet, hogy csatornákat szeretne használni a hibakereséshez, vagy válaszolhat az eseményekre, ugyanolyan botdal különböző csatornákban. Ez rajtad múlik, hogy edzse a csatorna elnevezési egyezményét. A következő példát fogjuk feltételezni, hogy a Slack_CHannel = WDM-bemutató, WDM-bemutató-debug.
Funkció Splitmessages (üzenet, debugmessage) {
csatornák.foreach (csatorna = & gt; {
CONST MSG = CHANNEL.InClUdes ('Debug')
? DebugMessage: Üzenet;
bot.postto (csatorna, msg, botparams);
});
}
Keménykódolási válaszokat közvetlenül az üzenetben. Előre haladva, hogy a dolgok kezelhetőbbé váljanak, lehet, hogy a triggerek és válaszok tárolása, akár egy adatbázisban, akár JSON formátumban, és a találkozó feltételek függvényében válthat.
// Példa válaszelem
{
Bemenet: "hr",
inputmatch: "Include",
Válasz: 'Ha kapcsolatba kell lépnie a HR-vel,
e-mailjeik a [email protected],
Válasz típus: "Efemeral"
}
Van néhány más hasznos tulajdonság a laza API-ban. Remélhetőleg ez a bemutató áttekintést kap arról, hogy mi lehetséges az összes bot igénye. További források megtalálhatók a 'Slackbots' dokumentáció vagy a teljes Laza API dokumentáció .
Ez a cikk eredetileg a Creative Web Design magazin 289-es számában jelent meg Web designer . Itt vásároljon 289 kérdést vagy Iratkozzon fel itt a webdesignerre .
Kapcsolódó cikkek:
(Kép hitel: Steve Goad) Kezdje el az Artrage-t 01. Kapjon be az Artrage-ben ..
Page 1 of 2: A perspektivikus rács használata az Illustrator: 01-09 lépések ..
A céloldala kulcsfontosságú elem az Ön számára honlap elrendezés . Ez az első igazi lehetőség, hogy be k..
Az elmúlt években a Wordpress számára a pihenő API fejlesztése új ajtókat nyitott a fejlesztők számára. A fejlesztők,..
Tanulás Hogyan festeni A portré nem könnyű, de vannak olyan lépések, amelyeket követhet, hogy segítsen az ..
A színes ceruzák keveredésének megtanulása segít abban, hogy többet kapjon az eszközeiből. Ahelyett, hogy az egyes ceruzák egyéni, lapos színét támaszkodnánk, összekeverhetjü..
A modern szoftverek rendkívül erősek és mindenre kiterjedőek lehetnek. Maya nem különbözik, és egy zavaros tömböt kínál az eszközök, parancsok és opciókhoz, hogy segítsen el..
Mindannyian játszottunk a Photoshop folyékony eszközével, de a Photoshop CC legújabb iterációjában, Vályogtégla..