سلیک کاروباری اور ٹیموں کے لئے تیزی سے مقبول آلہ ہے جو فوری طور پر بات چیت کرنے کی ضرورت ہے. جبکہ یہ ہو سکتا ہے - کچھ معاملات میں - روزانہ رکاوٹ پر غور کیا جاسکتا ہے، اس میں بھی ایک بہت بڑا آٹومیشن کی صلاحیت ہے، ایک ہی جگہ میں ہر چیز کو برقرار رکھنے کے لئے درجنوں انضمام کی پیشکش کی جاتی ہے، اور یہ آہستہ آہستہ ای میلز کو تیز کر رہا ہے.
آپ کے نظام کو سست کے ساتھ ضم کرنے کے بہت سے طریقے ہیں؛ پلیٹ فارم بھی ایک برانڈڈ بوٹ فراہم کرتا ہے جس سے آپ کو آپ کے ڈیجیٹل ورکس میں یاد دہانیوں، یا پیغامات فراہم کرنے کی اجازت دیتا ہے. اور اس سے بھی زیادہ تعاون کی اصلاحات کے لئے، ان کی کوشش کریں کلاؤڈ اسٹوریج اختیارات.
سلیک مختلف اداروں کو پیش کرتا ہے جو 'بوٹس' سمجھا جا سکتا ہے:
اس ٹیوٹوریل میں ہم خاص طور پر 'بوٹ صارفین' پر نظر آئیں گے، ان پروگرام کیسے کریں گے (ہمارے گائیڈ کو چیک کریں بہترین کوڈ ایڈیٹرز اپنی زندگی کو آسان بنانے کے لئے) اور انہیں اپنی ضروریات کو پورا کرنا. یہ پیش نظارہ آپ کو ایک سست جگہ تک رسائی حاصل ہے جہاں آپ ایپ انضمام شامل کرسکتے ہیں. اگر آپ پہلے سے ہی حصہ نہیں ہیں تو، وہ تخلیق کرنے کے لئے آزاد ہیں.
مندرجہ ذیل میں، ہم ایک NODEJS اے پی پی کی تعمیر کرنے اور ایک سلیک چینل میں مخصوص پیغامات کا جواب دینے کے لئے تیار کرتے ہیں. ہم 'Slackbots' ماڈیول استعمال کرتے ہیں، جو سلیک ریئل ٹائم پیغام رسانی API کے لئے ایک لپیٹ ہے.
ویب سائٹ بنانے میں بھی دلچسپی رکھتے ہیں؟ ایک شاندار انتخاب کریں ویب سائٹ بلڈر اور اوپر ویب میزبانی اس کے ساتھ جانے کے لئے سروس.
یہ سبق فرض کرتا ہے کہ آپ کو نوڈ انسٹال کیا گیا ہے. اگر نہیں، تو اب ایسا کرو. پھر اثاثوں کو ڈاؤن لوڈ کریں تمہیں ضرورت ہوگی. ہم نے آپ کو سبق کے لئے ایک نقطہ آغاز اور فریم ورک کے ساتھ فراہم کیا ہے.
بھر میں، ہم ماڈیولز کا استعمال کرتے ہیں جیسے 'Slackbots' اور 'نوڈ سلیپ اپ لوڈ'. انسٹال کمانڈ چلانے سے انہیں حاصل کیا جاسکتا ہے.
npm install
ہم سلیک کے لئے "بوٹ صارف" انضمام کا استعمال کر رہے ہیں. ایسا کرنے کے لئے، ہمیں 'https: // & lt؛ youslackworkspace اور gt؛ .slack.com / اطلاقات / A0F7YS25R-Bots' پر جانے کی طرف سے ایک ٹوکن حاصل کرنے کی ضرورت ہے اور "ترتیب شامل کریں" پر کلک کریں.
اپنے بوٹ کے لئے ایک صارف نام کا انتخاب کریں (ہم اس پروگرام کو بعد میں مرحلے میں ختم کر سکتے ہیں)، اور تصدیق کریں.
مطلوبہ چینل میں بوٹ کو مدعو کریں.
ایک بوٹ صارف کی تشکیل سے آپ مندرجہ ذیل شکل میں ایک ٹوکن ملیں گے:
XOXB-000000-000000-x0xxxxxxxxxxxx0x.
اگلے مرحلے کے لئے ٹوکن کاپی کریں.
ہم مشکل کوڈنگ سے بچنے اور خفیہ ٹوکن اور چابیاں سے بچنے کے لئے ماحول کے متغیرات (ایک 'این وی وی فائل) کا استعمال کرتے ہیں، جیسا کہ ہم نے پیدا کیا ہے، اور آپ کے نجی سست کام اسپیس میں چینل کا نام.
آگے بڑھیں اور اپنے ٹوکن کے ساتھ '.env' فائل میں بھریں، اور چینل کا نام جس پر آپ نے بوٹ صارف کو مدعو کیا ہے.
slack_token = xoxb- & lt؛ yourtoken & gt؛
slack_channel = & lt؛ چینل کا نام اور جی ٹی؛
یہ اگلا مرحلہ ہمیں 2 فائلیں لیتا ہے: 'index.js'، جس میں ہمیں ایک مختصر نظر آتی ہے، اور 'بن / لیب / bot.js'، جہاں ہماری زیادہ تر ترقی ہوتی ہے. انڈیکس فائل میں، ہم نے ایک نام دینے کے ذریعہ ہمارا بوٹ انسٹال کیا، جو 'WDMBOT' ہے.
'bot.js' میں ہم نام، ٹوکن، وغیرہ کے ساتھ ہر مثال کے پیرامیٹرز کو کنٹرول کرتے ہیں.
// index.js.
CONCENT BOT = کی ضرورت ہے ('./ bin / lib / bot'). اندرونی
('wdmbot')؛
//bot.js.
استعمال BotParams = {
icon_emoji: ': robot_face:'
AS_USER: غلط
}؛
بوٹ دو
فنکشن انسٹبٹ (بوٹ نام) {
BOT = نیا Slackbot ({
ٹوکن: عمل. env.slack_token،
نام: بوٹ نام
})؛
}
'Sendmessage' تقریب پر نظر ڈالیں. ہم 'پوسٹٹو' کا طریقہ استعمال کرتے ہیں. یہ کسی بھی قسم کے چینل، عوامی یا نجی میں پوسٹنگ کو سنبھال لیں گے. اگر آپ صرف نجی چینلز پر پوسٹ کرنا چاہتے ہیں تو آپ اس کے بجائے 'پوسٹ ٹیٹو گروپ' استعمال کرسکتے ہیں (یا 'پوسٹرچینل' عوامی طور پر). ہمارے پہلے پیغام کو بھیجنے کے لئے، ہم 'Interbot' میں کوڈ شامل کر سکتے ہیں.
فنکشن انسٹبٹ (بوٹ نام) {
BOT = / * اوپر ملاحظہ کریں * /
SendMessage ('میں یہاں ہوں!')؛
}
// اب 'این پی ایم شروع' چلائیں
آپ کو آپ کے چینل میں WDMBOT سے ایک پیغام نظر آنا چاہئے. یہ بات قابل ذکر ہے کہ 'botparams' میں، 'as_user' غلط ہے، جو ہمیں نام اور تصویر کو اوور کرنے کی اجازت دیتا ہے. اگر سچ میں مقرر ہوتا ہے، تو اس کا نام اور تصویر استعمال کرے گا جسے آپ ٹوکن حاصل کرتے ہیں.
آپ بوٹ emoji ایک تصویر کی طرح ایک تصویر کو تبدیل کر سکتے ہیں:
COST BOTPARAMS = {
icon_url: 'https://pbs.twimg.com/
پروفائل_images / 976112552081010688 /
wllqvj8d_400x400.jpg '
AS_USER: غلط
}؛
پیغامات پوسٹ کرنے کے لئے مفید ہے، لیکن بوٹ زیادہ انٹرایکٹو بنانے کے لئے، ہمیں چینل میں دوسرے صارفین کے خطوط کی شناخت کرنے کے قابل ہونے کی ضرورت ہے. چلو پیغام ایونٹ کو سنتے ہیں، اور پھر دیکھیں کہ جب ہم چینل میں ٹائپ کرتے ہیں تو کیا ہوتا ہے. ہمیں 'user_typing' یا 'پیغام' کی طرح مختلف پیغام کی اقسام کو لاگ ان کیا جانا چاہئے.
فنکشن انسٹبٹ (بوٹ نام) {
BOT = / * اوپر ملاحظہ کریں * /
bot.on ('پیغام'، ڈیٹا = & gt؛ {
کنسول .log (ڈیٹا)؛
})؛
}
اگلا، ہم 'پیغام' کے آنے والے پیغامات کا جواب دینا چاہتے ہیں، اور شاید ایک مخصوص جملہ یا مطلوبہ الفاظ میں، بالکل سب کچھ جواب دینے سے بچنے کے لۓ. ہم اس بات کو یقینی بناتے ہیں کہ اگر ہم ایک درست جملہ سے ملنا چاہتے ہیں تو کم سے کم تاروں کا موازنہ کریں. ہم یہ بھی دیکھ سکتے ہیں کہ ایک پیغام 'میں شامل ہے ()' ایک خاص لفظ.
BOT.ON ('پیغام'، ڈیٹا = & gt؛ {
اگر (ڈیٹا. ٹائپ === 'پیغام') {
اگر (ڈیٹا. text.tolowercterce () === 'کہاں
تم ہو؟') {
SendMessage ('میں یہاں ہوں!')؛
}
}
})؛
بوٹ کے صارفین کی طرف سے بھیجے گئے پیغامات مختلف خصوصیات ہیں جیسے 'bot_message' اور bot_id کے ذیلی قسم. آپ شاید صرف انسانی پوسٹ کردہ پیغامات پر جواب دینا چاہتے ہیں تاکہ بٹس کے لامحدود چھتوں سے بچنے کے لۓ اپنے آپ کو یا ایک دوسرے کے جواب میں، اگر ان کے جواب میں آپ کے مطلوبہ الفاظ میں شامل ہو تو میں شامل ہوں.
BOT.ON ('پیغام'، ڈیٹا = & gt؛ {
اگر (ڈیٹا. ٹائپ === 'پیغام' & amp؛ amp؛ ڈیٹا.
ذیلی قسم! == 'bot_message') {
اگر (ڈیٹا. text.tolowercast ().
پر مشتمل ہے ('ہیلو')) {
SendMessage (ہیلو، میں ایک بوٹ ہوں!)؛
}
}
})؛
زیادہ ذاتی جواب دینے کے لۓ، آپ اس پیغام کے صارف کی شناخت کو فائدہ اٹھا سکتے ہیں جو آپ جواب دے رہے ہیں. ٹیگ '& lt؛ @ & gt؛' میں منسلک جب سست خود کار طریقے سے صارف کے نام پر ایک ID کو تبدیل کرے گا. شناخت کرنے والے کون کون سا جواب دے رہے ہیں، خاص طور پر اگر ایک سے زیادہ چینل کے ارکان آپ کے بوٹ کے ساتھ ساتھ ساتھ بات چیت کر رہے ہیں.
BOT.ON ('پیغام'، ڈیٹا = & gt؛ {
اگر (ڈیٹا. ٹائپ === 'پیغام' & amp؛ amp؛ ڈیٹا.
ذیلی قسم! == 'bot_message') {
اگر (ڈیٹا. text.tolowercast ().
پر مشتمل ہے ('ہیلو')) {
SendMessage ('ہیلو & lt؛ @ $ {data.user}
& gt؛ میں ایک بوٹ ہوں!)
}
}
})؛
بٹس بھی ان کے ردعمل میں ترمیم کرسکتے ہیں. صرف ان کے اپنے ہی، اگرچہ. لہذا اگر آپ ٹائپو سپاٹنگ بوٹ کے لئے امید کر رہے تھے تو آپ اپنے پیغامات کو خود کار طریقے سے درست کریں گے جب یہ غلطی کی جاسکتی ہے، تو یہ موجودہ سیٹ اپ کے ساتھ ممکن نہیں ہے.
پیغام کو اپ ڈیٹ کرنے کے لئے، ہم ایک نئی تقریب کی وضاحت کرتے ہیں، اور ایک عالمی بلینن جو ہم اپنے ڈیمو میں استعمال کریں گے.
changereply = غلط دو
فنکشن Updatemessage (MessageParams) {
Bot.Updatemessage (MessageParams.Channel،
MessageParams.Ts، MessageParams.Text،
botparams)؛
}
چلو متن کو اپ ڈیٹ کرنے کی کوشش کرتے ہیں کہ بوٹ ہمیں بھیجتا ہے. اس معاملے میں، ایک پیغام ایونٹ پر، ہمیں آنے والی بوٹ پیغام کا جواب دینے کی ضرورت ہے، لہذا ہم اس شرط کو اپ ڈیٹ کے لئے ملیں گے، اور ہم اصل پیغام کے ٹائمسٹیمپ کو اپ ڈیٹ کرنے کے لئے بھی استعمال کرتے ہیں. یہ بہت سست ہے جو اپ ڈیٹ کرنے کے لئے کونسی پیغام کو اپ ڈیٹ کرنے کی شناخت کرسکتا ہے، اگر دوسروں کو پوسٹ کیا جائے.
اگر (ڈیٹا. ٹائپ === 'پیغام' & amp؛ amp؛ data.subtype! ==
'bot_message' & amp؛ & amp؛ data.text) {
اگر (ڈیٹا. text.cludes ('اپ ڈیٹ')) {
SendMessage ('میں 5 میں اپ ڈیٹ کروں گا
سیکنڈ ')؛
Changereply = سچ؛
}
}
اگر (ڈیٹا. ٹائپ === 'پیغام' & amp؛ & amp؛ ڈیٹا. subtype ===
'bot_message' & amp؛ & amp؛ Changereply) {
Changereply = غلط؛
Settimeout (() = & gt؛ {
UpdatEmessage ({چینل: ڈیٹا .چینیل،
ts: data.ts، متن: 'میں نے اپ ڈیٹ کیا ہے'})؛
}، 5000)؛
}
یادگار پیغامات ہیں، جیسا کہ نام کا مشورہ، عارضی طور پر. وہ صرف ایک صارف کے لئے بھی نظر آتے ہیں اور ان کی طرف سے حذف کر سکتے ہیں. ان قسم کے پیغامات ایک ٹپ یا یاد دہانی کے طور پر مفید ہوسکتے ہیں جو مستقل طور پر رہنے کی ضرورت نہیں ہے.
اگر (ڈیٹا. text.townowercaster (). پر مشتمل ہے ('HR')) {
Ephemalmessage ({
چینل: ڈیٹا .چین،
یوزر: ڈیٹا .USER،
متن: 'اگر آپ کو HR سے رابطہ کرنے کی ضرورت ہے،
ان کا ای میل [email protected] ہے '
})؛
}
// تقریب ہم کال کر رہے ہیں
فنکشن EPhemeralmessage (MessageParams) {
Bot.postephemeral (MessageParams.Channel،
پیغام parparams.user، messageparams.text،
botparams)؛
}
مختلف طریقوں کو تھوڑا سا مختلف صارف پیرامیٹر (یا تو ID یا نام، جو ڈسپلے_ نام اور Real_name سے مختلف ہے) لے جائے گا. تاہم، صرف صارف کی شناخت صرف پیغام کے واقعات پر دستیاب ہے. لہذا ہم تمام صارفین کو حاصل کرنے اور ID سے مل کر صارف کا نام تلاش کو لاگو کر سکتے ہیں.
ASYNC فنکشن GetUsername (UserID) {
BOT.Getusers کا انتظار کریں ()
.یہ (اعداد و شمار = & gt؛ {
رکن = ڈیٹا. members.find
(صارف = & gt؛ {
Usery.id === UserID واپس لو؛
})؛
اراکین کو واپس لو.
})
.catch (ERR = & GT؛ کنسول. log (err))؛
}
نئے صارف کی تلاش کے ساتھ، ہم اب صارف کو براہ راست پیغامات بھیج سکتے ہیں، جب ایپیمل پیغامات صرف نہیں کریں گے. نوٹ کریں کہ براہ راست پیغامات اصل چینل کے مقابلے میں مختلف شناخت کے ساتھ، ایک نیا / مختلف چینل سمجھا جاتا ہے. آپ اسی طرح میں ایک چینل کی تلاش کو بھی لاگو کرسکتے ہیں جیسے صارف نے پہلے ہی کیا ہے.
// پیغام ایونٹ میں
اگر (ڈیٹا. text.tolowercast (). پر مشتمل ہے ('بوٹ')) {
SENDDM ({
یوزر: ڈیٹا .USER،
متن: 'میں کس طرح مدد کر سکتا ہوں؟'
})؛
}
// تقریب ہم کال کر رہے ہیں
ASYNC تقریب SendDM (MessageParams) {
صارف = GetUsername کا انتظار کرنے دو
(پیغام parparams.user)؛
Bot.postmessagetouser (صارف، پیغام واپس لو
Params.Text، BotParams، (ERR، ڈیٹا) = & gt؛ {
کنسول .log (غلط)
})؛
}
بوٹ کے صارفین کو بھی فائلوں اور تصاویر کو ایک چینل میں اپ لوڈ کرنے کی اجازت ہے. یہ فعالیت 'Slackbots' کی طرف سے احاطہ نہیں کیا جاتا ہے اگرچہ، لہذا ہمیں ذیل میں مظاہرہ کے طور پر ایک نیا اپ لوڈر کو فوری طور پر نکالنا ہوگا. اس میں کچھ تصاویر کے ساتھ، آپ کے منصوبے کی جڑ میں ایک اثاثوں کے فولڈر کو بھی تیار کریں.
آئیے اگلے مرحلے میں بیان کردہ 'Sendimage ()' کو کال کریں.
// Instbot میں ()
اپ لوڈر = نیا سلیک اپ لوڈ (عمل.
slack_token)؛
// پیغام ایونٹ میں
اگر (ڈیٹا. text.cludes ('تصویر')) {
اگر (! ڈیٹا. اپ لوڈ) {
/ * اس صورت میں، کوئی پیغام نہیں ہے
ذیلی قسم،
لہذا ہم چیک کریں کہ یہ ایک کی طرف سے شروع نہیں کیا گیا ہے
پچھلا اپ لوڈ پیغام * /
image = data.text.split ('') ؛
Sendimage ('یہ آپ کی تصویر ہے
مطلوب '، تصویر)؛
}
}
ہم اپ لوڈر اور فائل سسٹم (ایف ایس ایس) ماڈیول کا استعمال کرتے ہوئے تصاویر اپ لوڈ کرتے ہیں. فراہم کی گئی ہے کہ صارف کا پیغام فارمیٹ میں ہے "تصویر اور ایل ٹی؛ Imagename.extension اور GT؛"، اور اس طرح کی ایک فائل 'اثاثوں' کے فولڈر میں موجود ہے، تصویر پڑھائی اور اپ لوڈ کی جائے گی. اگر نہیں، تو ہم باقاعدگی سے پیغام واپس بھیجتے ہیں (یہ بھی ایک یادگار ہو سکتا ہے).
فنکشن sendimage (پیغام، تصویر) {
Uploader.Uploadfile ({
فائل: FS.creetereadstream (path.join.
(__dirname، '../../assets/$}')،
Mimetype: 'تصویر / *'،
فائل کی قسم: '*'،
عنوان: تصویر،
ابتداء: پیغام،
چینلز: چینل
}، (غلط، ڈیٹا) = & gt؛ {
اگر (غلط) {
SendMessage ('افسوس ہے میں نہیں مل سکا
$ {تصویر} ')؛
}
})؛
}
آپ ایک ہی بوٹ صارف کے ساتھ ایک سے زیادہ چینلز کو پوسٹ کر سکتے ہیں، جب تک کہ یہ ہر چینل کا ایک رکن ہے جہاں آپ جواب کی توقع کر رہے ہیں. آتے ہیں
مسلسل چینلز = عمل. env.slack_channel.
تقسیم ('،')؛
کان چینل = چینلز ؛
فنکشن پوسٹ ٹو (پیغام) {
چینلز. فورچ (چینل = & gt؛ {
BOT.postto (چینل، پیغام، botparams)؛
})؛
}
کبھی کبھار، آپ شاید ڈیبگنگ کے لئے چینلز کا استعمال کرنا چاہتے ہیں، یا مختلف چینلز میں اسی بوٹ کے ساتھ مختلف واقعات کا جواب دینا چاہتے ہیں. یہ آپ کے چینل نامنگ کنونشن کو کام کرنے کے لئے آپ پر ہے. ہم مندرجہ ذیل مثال کے لئے فرض کریں گے کہ slack_channel = wdm-tutour، wdm-tutorial-debug.
فنکشن SplitMessages (پیغام، debugmessage) {
چینلز. فورچ (چینل = & gt؛ {
COST MSG = Channel.includes ('ڈیبگ')
DEBUGMessage: پیغام؛
BOT.postto (چینل، پیغام، BotParams)؛
})؛
}
ہم براہ راست پیغام میں براہ راست مشکل کوڈنگ جوابات ہیں. آگے بڑھنے، چیزوں کو زیادہ انتظام کرنے کے لۓ، آپ کو ٹرانسمیشن اور ردعملوں کو ذخیرہ کرنے کے لئے چاہتے ہیں، یا تو ڈیٹا بیس یا JSON کی شکل میں، اور ان کے درمیان سوئچ ان حالات پر منحصر ہے.
// مثال کے طور پر جواب شے
{
ان پٹ: 'HR'،
ان پٹ ایمچ: 'شامل کریں'،
جواب: 'اگر آپ کو HR سے رابطہ کرنے کی ضرورت ہے،
ان کا ای میل [email protected] ہے،
ResponseType: 'ephemeral'
}
سست API میں دستیاب کچھ دیگر مفید خصوصیات موجود ہیں. امید ہے کہ، یہ سبق آپ کے تمام بوٹ کی ضروریات کے لئے کیا ممکن ہے اس کا جائزہ لیا جائے گا. مزید وسائل پڑھنے کی طرف سے پایا جا سکتا ہے 'Slackbots' دستاویزات ، یا مکمل SLACK API دستاویزات .
یہ مضمون اصل میں تخلیقی ویب ڈیزائن میگزین کے مسئلہ 289 میں شائع کیا گیا تھا ویب ڈیزائنر . مسئلہ 289 خریدیں یا یہاں ویب ڈیزائنر کو سبسکرائب کریں .
متعلقہ مضامین:
(تصویری کریڈٹ: ایڈوب) فوٹوشاپ میں فانٹ: فوری لنکس روا..
(تصویری کریڈٹ: میگ Buick) Lino Printmaking امدادی پرنٹنگ کا ایک طریقہ ہے، جس..
(تصویری کریڈٹ: مستقبل) کونیی 8 Google کے زاویہ کا تازہ ترین ورژن ہے - م..
اس سبق میں، ہم آپ کو دکھائیں گے کہ کس طرح ایک چپچپا ٹیکسٹ اثر پیدا ہوتا ہے. خاص اثرات اور متحرک تصاویر ویب س..
اس سبق میں، ہم آپ کو ایک ٹکڑا بنانے کے لئے کس طرح دکھایا جائے گا 3D آر..
ایک اعداد و شمار کو پینٹ کرنے کے لئے جو کافی گیلا لگ رہا ہے وہ آپ کو اکاؤ�..
ایک خوبصورت غروب ایک ایسی بات یہ ہے کہ ایک کیمرے کے ساتھ کوئی بھی اس پر ق..
مکمل وقت کے فری لانس کے طور پر، میں ایک قسم کی شیلیوں میں کام کرنے کے لئے..