ສ້າງ bot Slack ທີ່ ກຳ ນົດເອງ

ກະວີ: Peter Berry
ວັນທີຂອງການສ້າງ: 15 ເດືອນກໍລະກົດ 2021
ວັນທີປັບປຸງ: 13 ເດືອນພຶດສະພາ 2024
Anonim
ສ້າງ bot Slack ທີ່ ກຳ ນົດເອງ - Creative
ສ້າງ bot Slack ທີ່ ກຳ ນົດເອງ - Creative

ເນື້ອຫາ

Slack ແມ່ນເຄື່ອງມືທີ່ໄດ້ຮັບຄວາມນິຍົມເພີ່ມຂື້ນ ສຳ ລັບທຸລະກິດແລະທີມງານທີ່ຕ້ອງການສື່ສານທັນທີ. ໃນຂະນະທີ່ມັນອາດຈະ - ໃນບາງກໍລະນີ - ຖືວ່າເປັນການລົບກວນປະ ຈຳ ວັນ, ມັນຍັງມີທ່າແຮງການອັດຕະໂນມັດທີ່ດີ, ສະ ເໜີ ການປະສົມປະສານຫລາຍສິບຢ່າງເພື່ອຮັກສາທຸກຢ່າງໃນບ່ອນດຽວ, ແລະມັນສົ່ງອີເມວຊ້າໆ.

ມີຫຼາຍວິທີໃນການລວມລະບົບຂອງທ່ານກັບ Slack; ແພລະຕະຟອມແມ່ນແຕ່ໃຫ້ bot ຍີ່ຫໍ້ທີ່ຊ່ວຍໃຫ້ທ່ານສົ່ງ ຄຳ ເຕືອນ, ຫລືຂໍ້ຄວາມຕ່າງໆໃນທົ່ວພື້ນທີ່ເຮັດວຽກດິຈິຕອນຂອງທ່ານ. ແລະ ສຳ ລັບການເພີ່ມປະສິດທິພາບໃນການຮ່ວມມືຫລາຍຂຶ້ນ, ລອງໃຊ້ຕົວເລືອກການເກັບຂໍ້ມູນຟັງເຫລົ່ານີ້.

  • 18 ເຄື່ອງມືການຮ່ວມມືທີ່ດີທີ່ສຸດ ສຳ ລັບນັກອອກແບບ

Slack ສະ ເໜີ ບັນດາຫົວ ໜ່ວຍ ຕ່າງໆທີ່ສາມາດຖືວ່າ 'bots':

  • webhooks, ເຊິ່ງອະນຸຍາດໃຫ້ໂພສຂໍ້ຄວາມຈາກແອັບ other ອື່ນເຂົ້າໄປໃນ Slack, ແຕ່ແມ່ນແບບ ໜຶ່ງ ຂອງການສື່ສານ,
  • ແອັບ,, ສຳ ລັບຄວາມກ້າວ ໜ້າ ຂອງການປະສົມປະສານ (ກັບແອັບ apps ອື່ນໆ),
  • ຜູ້ໃຊ້ bot, ເພີ່ມເຕີມກ່ຽວກັບພວກເຂົາໃນໄວໆນີ້.

ໃນ ຄຳ ແນະ ນຳ ນີ້ພວກເຮົາຈະໄດ້ຮັບການພິຈາລະນາໂດຍສະເພາະກ່ຽວກັບ 'ຜູ້ໃຊ້ bot', ວິທີການຂຽນໂປແກຼມໃຫ້ພວກເຂົາ (ກວດເບິ່ງຄູ່ມືຂອງພວກເຮົາກັບບັນນາທິການລະຫັດທີ່ດີທີ່ສຸດເພື່ອເຮັດໃຫ້ຊີວິດທ່ານງ່າຍຂື້ນ) ແລະເຮັດໃຫ້ພວກເຂົາ ເໝາະ ສົມກັບຄວາມຕ້ອງການຂອງທ່ານ. ນີ້ presupposes ທ່ານສາມາດເຂົ້າເຖິງພື້ນທີ່ Slack ບ່ອນທີ່ທ່ານສາມາດເພີ່ມການລວມເຂົ້າຂອງແອັບ app. ຖ້າທ່ານບໍ່ໄດ້ເປັນສ່ວນ ໜຶ່ງ ຂອງ ໜຶ່ງ, ພວກເຂົາກໍ່ສາມາດສ້າງ.


ໃນສິ່ງທີ່ຕໍ່ໄປນີ້, ພວກເຮົາສ້າງແອັບ N NodeJS ເພື່ອໂພດແລະຕອບກັບຂໍ້ຄວາມໂດຍສະເພາະໃນຊ່ອງ Slack. ພວກເຮົາໃຊ້ໂມດູນ 'slackbots', ເຊິ່ງເປັນເຄື່ອງຫໍ່ ສຳ ລັບ Slack Real-Time Messaging API.

ມີຄວາມສົນໃຈຢາກເຮັດເວັບໄຊທ໌້ບໍ? ເລືອກຜູ້ສ້າງເວບໄຊທ໌ທີ່ສະຫງ່າງາມແລະບໍລິການໂຮດເວັບຊັ້ນ ນຳ ເພື່ອໄປ ນຳ.

01. ການຕັ້ງລະຫັດ

ຄຳ ແນະ ນຳ ນີ້ສົມມຸດວ່າທ່ານໄດ້ຕິດຕັ້ງ node ແລ້ວ. ຖ້າບໍ່, ເຮັດແນວນັ້ນດຽວນີ້. ຫຼັງຈາກນັ້ນດາວໂຫລດຊັບສິນທີ່ທ່ານຕ້ອງການ. ພວກເຮົາໄດ້ສະ ເໜີ ຈຸດເລີ່ມຕົ້ນແລະກອບວຽກ ສຳ ລັບການສອນ.

ຕະຫຼອດ, ພວກເຮົາໃຊ້ໂມດູນເຊັ່ນ 'slackbots' ແລະ 'node-slack-upload'. ພວກເຂົາສາມາດໄດ້ຮັບໂດຍການແລ່ນຄໍາສັ່ງຕິດຕັ້ງ.

npm ຕິດຕັ້ງ

02. ການຕັ້ງກະທັດຮັດ

ພວກເຮົາ ກຳ ລັງໃຊ້ການລວມຕົວ "ຜູ້ໃຊ້ Bot" ສຳ ລັບ Slack. ເພື່ອເຮັດແນວນັ້ນ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງໄດ້ຮັບ token ໂດຍເຂົ້າໄປທີ່ 'https: // youSlackworkspace> .slack.com / apps / A0F7YS25R-bots' ແລະກົດ "ຕື່ມການຕັ້ງຄ່າ".


ເລືອກຊື່ຜູ້ໃຊ້ ສຳ ລັບ bot ຂອງທ່ານ (ພວກເຮົາສາມາດ override ໂຄງການນີ້ໃນຂັ້ນຕໍ່ໄປ), ແລະຢືນຢັນ.

ເຊື້ອເຊີນ bot ກັບຊ່ອງທາງທີ່ຕ້ອງການ.

ໂດຍການສ້າງຜູ້ໃຊ້ bot ທ່ານຈະໄດ້ຮັບ token ໃນຮູບແບບຕໍ່ໄປນີ້:

xoxb-000000-000000-x0x0xxXxX0XXxx0x

ສຳ ເນົາໂທເຄນ ສຳ ລັບຂັ້ນຕອນຕໍ່ໄປ.

03. ຕົວແປສິ່ງແວດລ້ອມ

ພວກເຮົາ ນຳ ໃຊ້ຕົວແປທີ່ມີສະພາບແວດລ້ອມ (ໄຟລ໌ '.env') ເພື່ອຫລີກລ້ຽງການເຂົ້າລະຫັດແລະການເປີດເຜີຍຕົວເຄນແລະກຸນແຈລັບໆ, ຄືກັບ Slack token ທີ່ພວກເຮົາໄດ້ສ້າງ, ແລະຊື່ຊ່ອງທາງໃນບ່ອນເຮັດວຽກ Slack ສ່ວນຕົວຂອງທ່ານ.

ສືບຕໍ່ເດີນຫນ້າແລະຕື່ມຂໍ້ມູນໃສ່ '.env' ແຟ້ມກັບໂທເຄນຂອງທ່ານ, ແລະຊື່ຂອງຊ່ອງທາງທີ່ທ່ານໄດ້ເຊື້ອເຊີນຜູ້ໃຊ້ bot.

SLACK_TOKEN = xoxb-YourToken> SLACK_CHANNEL = ຊື່ຊ່ອງທາງ -

04. ພາລາມິເຕີຂອງ Bot

ຂັ້ນຕອນຕໍ່ໄປຈະພາພວກເຮົາໄປຫາ 2 ເອກະສານ: 'index.js', ເຊິ່ງພວກເຮົາຈະໄດ້ເບິ່ງສັ້ນໆແລະ 'bin / lib / bot.js', ບ່ອນທີ່ການພັດທະນາສ່ວນໃຫຍ່ຂອງພວກເຮົາເກີດຂື້ນ. ໃນເອກະສານດັດສະນີ, ພວກເຮົາເລັ່ງນາມ bot ຂອງພວກເຮົາໂດຍໃຫ້ມັນຊື່, ເຊິ່ງແມ່ນ 'WDMBot'.


ໃນ 'bot.js' ພວກເຮົາຄວບຄຸມພາລາມິເຕີຂອງແຕ່ລະຕົວຢ່າງທີ່ມີຊື່, ໂທເຄນ, ແລະອື່ນໆ.

//index.js const bot = ຕ້ອງການ ('./ bin / lib / bot'). init ('WDMBot'); //bot.js const botParams = {icon_emoji: ': robot_face:', as_user: false}; ປ່ອຍໃຫ້ bot; function initBot (botName) {bot = new slackbot ({token: process.env.SLACK_TOKEN, ຊື່: botName}); }

05. ລົງໃສ່ຊ່ອງທາງ

ເບິ່ງທີ່ ໜ້າ ‘SendMessage’. ພວກເຮົາໃຊ້ວິທີການ 'postTo'. ນີ້ຈະຈັດການກັບການປະກາດທຸກຊ່ອງທາງ, ສາທາລະນະຫຼືສ່ວນຕົວ. ຖ້າທ່ານຕ້ອງການໂພດໄປຍັງຊ່ອງທາງສ່ວນຕົວທ່ານສາມາດໃຊ້ 'postToGroup' ແທນ (ຫຼື 'postToChannel' ສຳ ລັບຊ່ອງສາທາລະນະ). ເພື່ອສົ່ງຂໍ້ຄວາມ ທຳ ອິດຂອງພວກເຮົາ, ພວກເຮົາສາມາດເພີ່ມລະຫັດເຂົ້າໃນ 'initBot'.

function initBot (botName) {bot = / * ເບິ່ງຂ້າງເທິງ * / sendMessage ('ຂ້ອຍຢູ່ນີ້!'); } // ດຽວນີ້ແລ່ນ 'npm ເລີ່ມຕົ້ນ'

06. botParams ທີ່ ກຳ ຫນົດເອງ

ທ່ານຄວນຈະສັງເກດເຫັນຂໍ້ຄວາມຈາກ WDMBot ປາກົດຢູ່ໃນຊ່ອງຂອງທ່ານ. ມັນເປັນມູນຄ່າທີ່ສັງເກດວ່າໃນ 'botParams', 'as_user' ຖືກຕັ້ງຄ່າທີ່ບໍ່ຖືກຕ້ອງ, ເຊິ່ງຊ່ວຍໃຫ້ພວກເຮົາຫຼອກລວງຊື່ແລະຮູບພາບ. ຖ້າຕັ້ງເປັນຄວາມຈິງ, ມັນຈະໃຊ້ຊື່ແລະຮູບພາບທີ່ທ່ານຕັ້ງໄວ້ໃນເວລາທີ່ເອົາ token.

ທ່ານສາມາດປ່ຽນ bot emoji ໃຫ້ເປັນຮູບຄ້າຍຄືດັ່ງນີ້:

const botParams = {icon_url: 'https://pbs.twimg.com/ profile_images / 976112552081010688 / WLlQvj8D_400x400.webp', as_user: false};

07. ເຫດການຊ່ອງທາງ

ການໂພດຂໍ້ຄວາມແມ່ນມີປະໂຫຍດ, ແຕ່ເພື່ອເຮັດໃຫ້ bot ມີການໂຕ້ຕອບກັນຫຼາຍຂຶ້ນ, ພວກເຮົາຕ້ອງມີຄວາມສາມາດລະບຸຂໍ້ຄວາມຈາກຜູ້ໃຊ້ອື່ນໆໃນຊ່ອງທາງ. ເຊີນຟັງເຫດການຂໍ້ຄວາມ, ແລະຈາກນັ້ນເບິ່ງວ່າຈະມີຫຍັງເກີດຂື້ນເມື່ອພວກເຮົາພິມເຂົ້າຊ່ອງ. ພວກເຮົາຄວນຈະເຫັນປະເພດຂໍ້ຄວາມທີ່ແຕກຕ່າງກັນຖືກເຂົ້າສູ່ລະບົບເຊັ່ນ 'user_typing' ຫຼື 'message'.

function initBot (botName) {bot = / * ເບິ່ງຂ້າງເທິງ * / bot.on ('ຂໍ້ຄວາມ', ຂໍ້ມູນ => {console.log (ຂໍ້ມູນ);}); }

08. ຕອບກັບຂໍ້ຄວາມທີ່ເຂົ້າມາ

ຕໍ່ໄປ, ພວກເຮົາຕ້ອງການຕອບກັບຂໍ້ຄວາມທີ່ເຂົ້າມາຂອງປະເພດ 'ຂ່າວສານ', ແລະບາງທີອາດມີປະໂຫຍກຫຼື ຄຳ ທີ່ເຈາະຈົງໃດ ໜຶ່ງ, ເພື່ອຫລີກລ້ຽງການຕອບກັບທຸກສິ່ງທຸກຢ່າງ. ພວກເຮົາຮັບປະກັນໃຫ້ປຽບທຽບບັນດາສາຍຕ່ ຳ ນ້ອຍຖ້າພວກເຮົາຕ້ອງການກົງກັບ ຄຳ ສັບທີ່ແນ່ນອນ. ພວກເຮົາຍັງສາມາດເບິ່ງວ່າຂໍ້ຄວາມໃດ ໜຶ່ງ ລວມມີ () 'ຄຳ ໃດ.

bot.on ('ຂໍ້ຄວາມ', data => {ຖ້າ (data.type === 'ຂໍ້ຄວາມ') {ຖ້າ (data.text.toLowerCase () === 'ເຈົ້າຢູ່ໃສ?') {sendMessage ('ຂ້ອຍ' m ທີ່ນີ້! ');}}});

09. ຈຳ ກັດຜູ້ຊົມໃຊ້ "ມະນຸດ"

ຂໍ້ຄວາມທີ່ສົ່ງໂດຍຜູ້ໃຊ້ bot ມີຄຸນສົມບັດຕ່າງໆເຊັ່ນ: ຮູບແບບຍ່ອຍຂອງ 'bot_message' ແລະ bot_id. ທ່ານອາດຈະຕ້ອງການ ຈຳ ກັດການຕອບກັບພຽງແຕ່ຂໍ້ຄວາມທີ່ໂພດລົງໂດຍມະນຸດເທົ່ານັ້ນເພື່ອຫຼີກລ່ຽງຊ່ອງຫວ່າງຂອງບອທ໌ທີ່ຕອບກັບຕົວເອງຫຼືເຊິ່ງກັນແລະກັນ, ຖ້າ ຄຳ ຕອບຂອງພວກມັນລວມມີ ຄຳ ໜຶ່ງ ທີ່ທ່ານ ກຳ ລັງຟັງຢູ່.

bot.on ('ຂໍ້ຄວາມ', data => {ຖ້າ (data.type === 'ຂໍ້ຄວາມ' && ຂໍ້ມູນ. subtype! == 'bot_message') {ຖ້າ (data.text.toLowerCase ()) ລວມເຖິງ ('ສະບາຍດີ' )) {sendMessage ('ສະບາຍດີ, ຂ້ອຍແມ່ນ bot!');}}});

10. ການຕອບສະ ໜອງ ສ່ວນບຸກຄົນ

ເພື່ອຕອບສະ ໜອງ ຄວາມເປັນສ່ວນຕົວ, ທ່ານສາມາດ ນຳ ໃຊ້ຂໍ້ຄວາມຂອງຜູ້ໃຊ້ທີ່ທ່ານ ກຳ ລັງຕອບແທນ. Slack ຈະປ່ຽນ id ໃຫ້ກັບຊື່ຜູ້ໃຊ້ໂດຍອັດຕະໂນມັດເມື່ອໃສ່ໃນ tags '@>'. ການລະບຸຜູ້ທີ່ທ່ານ ກຳ ລັງຕອບກັບສາມາດເປັນປະໂຫຍດ, ໂດຍສະເພາະຖ້າສະມາຊິກຫຼາຍຊ່ອງທາງ ກຳ ລັງພົວພັນກັບ bot ຂອງທ່ານພ້ອມໆກັນ.

bot.on ('ຂໍ້ຄວາມ', data => {ຖ້າ (data.type === 'ຂໍ້ຄວາມ' && ຂໍ້ມູນ. subtype! == 'bot_message') {ຖ້າ (data.text.toLowerCase ()) ລວມເຖິງ ('ສະບາຍດີ' )) {sendMessage ('ສະບາຍດີ @ $ {data.user}> ຂ້ອຍເປັນ bot!');}}});

11. ປັບປຸງ ຄຳ ຕອບ

Bots ຍັງສາມາດແກ້ໄຂ ຄຳ ຕອບຂອງພວກເຂົາໄດ້. ມີພຽງແຕ່ຂອງເຂົາເຈົ້າເອງ, ເຖິງແມ່ນວ່າ. ສະນັ້ນຖ້າທ່ານ ກຳ ລັງຫວັງ ສຳ ລັບນາມຫລິ້ນກິລາທີ່ໃຊ້ typo-spotting ທີ່ຈະແກ້ໄຂຂໍ້ຄວາມຂອງທ່ານໂດຍອັດຕະໂນມັດເມື່ອມັນມີຂໍ້ຜິດພາດ, ມັນກໍ່ເປັນໄປບໍ່ໄດ້ກັບການຕັ້ງຄ່າໃນປະຈຸບັນ.

ເພື່ອປັບປຸງຂໍ້ຄວາມ, ພວກເຮົາ ກຳ ນົດ ໜ້າ ທີ່ ໃໝ່, ແລະ Boolean ທົ່ວໂລກທີ່ພວກເຮົາຈະ ນຳ ໃຊ້ໃນການສາທິດຂອງພວກເຮົາ.

let changeReply = ບໍ່ຖືກຕ້ອງ; function updateMessage (messageParams) {bot.updateMessage (messageParams.channel, messageParams.ts, messageParams.text, botParams); }

12. ປ່ຽນຂໍ້ຄວາມ

ໃຫ້ພະຍາຍາມປັບປຸງຂໍ້ຄວາມທີ່ bot ສົ່ງໃຫ້ພວກເຮົາ. ໃນກໍລະນີນີ້, ໃນເຫດການຂໍ້ຄວາມ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງຕອບກັບຂໍ້ຄວາມ bot ທີ່ເຂົ້າມາ, ສະນັ້ນພວກເຮົາຈະກົງກັບເງື່ອນໄຂນັ້ນ ສຳ ລັບການປັບປຸງ, ແລະພວກເຮົາຍັງໃຊ້ເວລາຂອງຂໍ້ຄວາມຕົ້ນສະບັບເພື່ອ ນຳ ໄປປັບປຸງ. ນັ້ນແມ່ນດັ່ງນັ້ນ Slack ສາມາດລະບຸວ່າຂໍ້ຄວາມໃດທີ່ຈະຕ້ອງປັບປຸງ, ໃນກໍລະນີທີ່ຄົນອື່ນໄດ້ລົງຂ່າວ.

ຖ້າ (data.type === 'ຂໍ້ຄວາມ' && data.subtype! == 'bot_message' && data.text) {ຖ້າ (data.text.inc ລວມ ('ອັບເດດ')) {sendMessage ('ຂ້ອຍຈະປັບປຸງໃນ 5 ວິນາທີ '); changeReply = ຄວາມຈິງ; }} ຖ້າ (data.type === 'ຂໍ້ຄວາມ' && data.subtype === 'bot_message' && changeReply) {changeReply = false; setTimeout (() => {updateMessage ({channel: data.channel, ts: data.ts, ຂໍ້ຄວາມ: 'ຂ້ອຍໄດ້ອັບເດດແລ້ວ'});}, 5000); }

13. ຂໍ້ຄວາມກ່ຽວກັບຂ່າວສານ

ຂໍ້ຄວາມກ່ຽວກັບສັບສົນແມ່ນ, ດັ່ງທີ່ຊື່ອາດຈະແນະ ນຳ, ຊົ່ວຄາວ. ພວກເຂົາຍັງສາມາດເບິ່ງເຫັນໄດ້ໂດຍຜູ້ໃຊ້ຄົນດຽວແລະສາມາດລຶບໂດຍພວກມັນໄດ້. ປະເພດຂໍ້ຄວາມເຫຼົ່ານັ້ນອາດຈະເປັນປະໂຫຍດເປັນ ຄຳ ແນະ ນຳ ຫຼື ຄຳ ເຕືອນທີ່ບໍ່ ຈຳ ເປັນຕ້ອງຢູ່ຖາວອນ.

ຖ້າ (data.text.toLowerCase (). ປະກອບມີ ('hr')) {ephemeralMessage ({ຊ່ອງທາງ: data.channel, ຜູ້ໃຊ້: data.user, ຂໍ້ຄວາມ: 'ຖ້າທ່ານຕ້ອງການຕິດຕໍ່ HR, ອີເມວຂອງພວກເຂົາແມ່ນ hr @ mycompany. com '}); } // ໜ້າ ທີ່ພວກເຮົາ ກຳ ລັງເອີ້ນຟັງຊັນ ephemeralMessage (messageParams) {bot.postEphemeral (messageParams.channel, messageParams.user, messageParams.text, botParams); }

14. ການຊອກຫາຜູ້ໃຊ້

ວິທີການທີ່ແຕກຕ່າງກັນຈະໃຊ້ພາລາມິເຕີຂອງຜູ້ໃຊ້ທີ່ແຕກຕ່າງກັນເລັກນ້ອຍ (ບໍ່ວ່າຈະເປັນ ID ຫຼືຊື່, ເຊິ່ງແຕກຕ່າງຈາກ display_name ແລະ real_name). ເຖິງຢ່າງໃດກໍ່ຕາມ, ມີພຽງແຕ່ id ຂອງຜູ້ໃຊ້ເທົ່ານັ້ນທີ່ມີໃນເຫດການຂໍ້ຄວາມ. ພວກເຮົາສາມາດປະຕິບັດການຄົ້ນຫາຊື່ຜູ້ໃຊ້ໂດຍການໄດ້ຮັບຜູ້ໃຊ້ທຸກຄົນແລະກົງກັບບັດປະ ຈຳ ຕົວ.

async function getUserName (userID) {ກັບຄືນລໍຖ້າ bot.getUsers (). ຕໍ່ (data => {ໃຫ້ສະມາຊິກ = data.members.find (ຜູ້ໃຊ້ => {ກັບຄືນ user.id === userID;}); return member.name ;}) .catch (err => console.log (err)); }

15. ສົ່ງຂໍ້ຄວາມໂດຍກົງ

ດ້ວຍການຊອກຫາຜູ້ໃຊ້ ໃໝ່, ດຽວນີ້ພວກເຮົາສາມາດສົ່ງຂໍ້ຄວາມໂດຍກົງຫາຜູ້ໃຊ້, ເມື່ອຂໍ້ຄວາມທີ່ມີໄລຍະເວລາພຽງແຕ່ບໍ່ໄດ້ເຮັດ. ໃຫ້ສັງເກດວ່າຂໍ້ຄວາມໂດຍກົງຖືກຖືວ່າເປັນຊ່ອງທາງ ໃໝ່ / ແຕກຕ່າງ, ມີ ID ທີ່ແຕກຕ່າງຈາກຊ່ອງທາງເດີມ. ທ່ານຍັງສາມາດຈັດການເບິ່ງຊ່ອງທາງໃນແບບດຽວກັບຜູ້ໃຊ້ທີ່ພວກເຮົາໄດ້ເຮັດມາກ່ອນ.

// ໃນເຫດການຂໍ້ຄວາມຖ້າ (data.text.toLowerCase (). ລວມມີ ('bot')) {sendDM ({ຜູ້ໃຊ້: data.user, ຂໍ້ຄວາມ: 'ຂ້ອຍຈະຊ່ວຍໄດ້ແນວໃດ?'}); } // ໜ້າ ທີ່ພວກເຮົາເອີ້ນວ່າ async function sendDM (messageParams) {ໃຫ້ຜູ້ໃຊ້ = ລໍຖ້າ getUserName (messageParams.user); ກັບຄືນ bot.postMessageToUser (ຜູ້ໃຊ້, ຂໍ້ຄວາມ Params.text, botParams, (ຜິດ, ຂໍ້ມູນ) => {console.log (err)}); }

ຕອບກັບຮູບພາບ

ຜູ້ໃຊ້ Bot ຍັງມີສິດໃນການອັບໂຫລດເອກະສານແລະຮູບພາບເຂົ້າໃນຊ່ອງທາງ. ຟັງຊັນນີ້ບໍ່ໄດ້ຖືກປົກຄຸມດ້ວຍ 'slackbots' ເຖິງແມ່ນວ່າ, ດັ່ງນັ້ນພວກເຮົາຕ້ອງໄດ້ອັບໂຫລດຜູ້ອັບໂຫລດ ໃໝ່ ທັນທີ, ດັ່ງທີ່ສະແດງຢູ່ດ້ານລຸ່ມ. ພ້ອມທັງກະກຽມໂຟນເດີ 'ຊັບສິນ' ຢູ່ຮາກໂຄງການຂອງທ່ານ, ໂດຍມີບາງຮູບໃນ.

ກະກຽມການໂທຫາເພື່ອ 'sendImage ()', ທີ່ ກຳ ນົດໃນຂັ້ນຕອນຕໍ່ໄປ.

// ໃນ initBot () uploader = ໃໝ່ slackUpload (process.env. SLACK_TOKEN); // ໃນກໍລະນີສົ່ງຂໍ້ຄວາມຖ້າ (data.text.inc ລວມ ('ຮູບພາບ')) {ຖ້າ (! data.upload) {/ * ໃນກໍລະນີນີ້, ມັນບໍ່ມີປະເພດຂໍ້ຄວາມ, ດັ່ງນັ້ນພວກເຮົາກວດເບິ່ງວ່າມັນບໍ່ເກີດຈາກ ຂໍ້ຄວາມທີ່ອັບໂຫລດກ່ອນ ໜ້າ ນີ້ * / ໃຫ້ຮູບພາບ = data.text.split ('') [1]; sendImage ('ນີ້ແມ່ນຮູບທີ່ທ່ານຕ້ອງການ', ຮູບພາບ); }}

17. ໜ້າ ທີ່ອັບໂຫລດເອກະສານ

ພວກເຮົາອັບໂຫລດຮູບພາບໂດຍ ນຳ ໃຊ້ໂປແກຼມ uploader ແລະ FileSystem (fs). ສະແດງໃຫ້ເຫັນວ່າຂໍ້ຄວາມຂອງຜູ້ໃຊ້ແມ່ນຢູ່ໃນຮູບແບບ "image imagename.extension>", ແລະເອກະສານດັ່ງກ່າວມີຢູ່ໃນໂຟນເດີ 'ຊັບສິນ', ຮູບພາບຈະຖືກອ່ານແລະອັບໂຫລດ. ຖ້າບໍ່, ພວກເຮົາສົ່ງຂໍ້ຄວາມປົກກະຕິຄືນ (ມັນອາດຈະແມ່ນຂ່າວຄາວ ໜຶ່ງ ອາທິດ).

function sendImage (ຂໍ້ຄວາມ, ຮູບພາບ) {uploader.uploadFile ({file: fs.createReadStream (path.join (__dirname, '../../assets/${image}')), mimetype: 'image / *' , filetype: ' *', ຫົວຂໍ້: ຮູບພາບ, ການເລີ່ມຕົ້ນການລົງທືນ: ຂໍ້ຄວາມ, ຊ່ອງທາງ: ຊ່ອງ}, (ຜິດພາດ, ຂໍ້ມູນ) => {ຖ້າ (ຜິດ) {sendMessage ('ຂໍອະໄພຂ້ອຍບໍ່ສາມາດຊອກຫາ $ {ຮູບພາບ}'); }}); }

18. ໂພສໃຫ້ຫຼາຍຊ່ອງທາງ

ທ່ານສາມາດໂພສໄປຫລາຍຊ່ອງທາງກັບຜູ້ໃຊ້ bot ດຽວກັນ, ຕາບໃດທີ່ມັນເປັນສະມາຊິກຂອງແຕ່ລະຊ່ອງທີ່ທ່ານຄາດຫວັງວ່າຈະໄດ້ຮັບການຕອບຮັບ. ໃຫ້ສ້າງ ໜ້າ ທີ່ 'postToAll' ແລະປັບປຸງຕົວແປສະພາບແວດລ້ອມເພື່ອໃຫ້ມີຊື່ຊ່ອງທາງເປັນຄ່າທີ່ຖືກແຍກອອກດ້ວຍຈຸດ.

const channels = process.env.SLACK_CHANNEL. ແບ່ງປັນ (','); const channel = ຊ່ອງທາງ [0]; function postToAll (ຂໍ້ຄວາມ) {channels.forEach (channel => {bot.postTo (ຊ່ອງທາງ, ຂໍ້ຄວາມ, botParams);)); }

19. ແບ່ງປັນຊ່ອງທາງ

ບາງຄັ້ງ, ທ່ານອາດຈະຕ້ອງການໃຊ້ຊ່ອງທາງ ສຳ ລັບການແກ້ໄຂ, ຫຼືຕອບສະ ໜອງ ຕໍ່ເຫດການທີ່ແຕກຕ່າງກັບ bot ດຽວກັນໃນຊ່ອງທາງຕ່າງໆ. ມັນຂຶ້ນກັບທ່ານທີ່ຈະອອກສົນທິສັນຍາການຕັ້ງຊື່ຊ່ອງທາງຂອງທ່ານ. ພວກເຮົາຈະສົມມຸດຕົວຢ່າງຕໍ່ໄປນີ້ວ່າ SLACK_CHANNEL = wdm-tutorial, wdm-tutorial-debug.

function splitMessages (ຂໍ້ຄວາມ, debugMessage) {channel.forEach (channel => {const msg = channel.includes ('debug')? debugMessage: ຂໍ້ຄວາມ; bot.postTo (ຊ່ອງທາງ, msg, botParams);)); }

20. ວັດຈະນານຸກົມຂອງ ຄຳ ຕອບ

ພວກເຮົາໄດ້ຮັບ ຄຳ ຕອບທີ່ຍາກໃນການຂຽນ ຄຳ ຕອບໂດຍກົງໃນຂໍ້ຄວາມ. ກ້າວໄປຂ້າງ ໜ້າ, ເພື່ອເຮັດໃຫ້ສິ່ງຕ່າງໆສາມາດຈັດການໄດ້ງ່າຍຂຶ້ນ, ທ່ານອາດຈະຕ້ອງການເກັບຮັກສາສິ່ງທີ່ກໍ່ໃຫ້ເກີດແລະຕອບສະ ໜອງ, ບໍ່ວ່າຈະຢູ່ໃນຖານຂໍ້ມູນຫຼືຮູບແບບ JSON, ແລະປ່ຽນລະຫວ່າງມັນຂື້ນຢູ່ກັບເງື່ອນໄຂທີ່ຕອບສະ ໜອງ.

// ຕົວຢ່າງການຕອບສະ ໜອງ ຕົວຢ່າງ {input: 'hr', inputMatch: 'ລວມ', ຕອບ: 'ຖ້າທ່ານຕ້ອງການຕິດຕໍ່ຫາ HR, ອີເມວຂອງພວກເຂົາແມ່ນ [email protected]', ການຕອບກັບປະເພດ: 'ephemeral'}

21. ແຫຼ່ງຂໍ້ມູນເພີ່ມເຕີມ

ມີຄຸນສົມບັດທີ່ເປັນປະໂຫຍດອີກ ຈຳ ນວນ ໜຶ່ງ ທີ່ມີຢູ່ໃນ Slack API.ຫວັງວ່າ, ບົດແນະ ນຳ ນີ້ຈະໄດ້ໃຫ້ພາບລວມກ່ຽວກັບສິ່ງທີ່ເປັນໄປໄດ້ ສຳ ລັບຄວາມຕ້ອງການຂອງທ່ານທັງ ໝົດ. ແຫຼ່ງຂໍ້ມູນເພີ່ມເຕີມສາມາດພົບໄດ້ໂດຍການອ່ານເອກະສານ 'slackbots', ຫຼືເອກະສານ Slack API ເຕັມ.

ບົດຂຽນນີ້ຖືກຈັດພີມມາໃນສະບັບທີ 289 ຂອງວາລະສານອອກແບບສ້າງສັນ ຜູ້ອອກແບບເວບໄຊທ໌. ຊື້ເລກທີ 289 ຢູ່ນີ້ ຫຼື ຈອງກັບຜູ້ອອກແບບເວບໄຊທ໌ນີ້.

ລາຍ​ລະ​ອຽດ​ເພີ່ມ​ເຕີມ
ການຖະແຫຼງຂ່າວຄືນ ໃໝ່ ຂອງມະຫາວິທະຍາໄລ Harvard
ຍິ່ງໄປກວ່ານັ້ນ

ການຖະແຫຼງຂ່າວຄືນ ໃໝ່ ຂອງມະຫາວິທະຍາໄລ Harvard

ໜັງ ສືພິມມະຫາວິທະຍາໄລ Harvard ກຳ ລັງສະເຫຼີມສະຫຼອງປີທີ່ມີການປ່ຽນແປງ ໃໝ່ ໂດຍມີການອອກແບບ ໃໝ່. ໃນຂະນະທີ່ແຜ່ນຈາລຶກທີ່ມີຮູບຊົງແບບດັ້ງເດີມມີຄວາມສະຫງ່າງາມແບບເກົ່າແກ່, ມັນຖືກຖືວ່າສັບສົນເກີນໄປທີ່ຈະເຮັດວຽກໄດ້ດີໃ...
ສະຖານທີ່ ສຳ ຄັນຂອງລອນດອນໄດ້ຖືກປັບປຸງ ໃໝ່ ເປັນສິລະປະເຈ້ຍ 3D
ຍິ່ງໄປກວ່ານັ້ນ

ສະຖານທີ່ ສຳ ຄັນຂອງລອນດອນໄດ້ຖືກປັບປຸງ ໃໝ່ ເປັນສິລະປະເຈ້ຍ 3D

ດ້ວຍການຄົບຮອບ 150 ປີຂອງ London Underground, ການແຂ່ງຂັນກິລາໂອລິມປິກແລະເຈົ້າຍິງ Jubilee, ບັນດານັກອອກແບບໄດ້ເປັນບ້າ ສຳ ລັບການສ້າງທີ່ລອນດອນໃນ 12 ເດືອນທີ່ຜ່ານມາ.ເບິ່ງປື້ມຄູ່ມືຂອງນັກອອກແບບຂອງພວກເຮົາທີ່ລອນດອນ...
ການອອກແບບແອັບ app ມືຖື: ຄູ່ມືເລີ່ມຕົ້ນຂອງຜູ້ເລີ່ມຕົ້ນ
ຍິ່ງໄປກວ່ານັ້ນ

ການອອກແບບແອັບ app ມືຖື: ຄູ່ມືເລີ່ມຕົ້ນຂອງຜູ້ເລີ່ມຕົ້ນ

ສະນັ້ນ, ທ່ານໄດ້ຕັດສິນໃຈທົດລອງອອກແບບແອັບ de ign ມືຖື, ແຕ່ທ່ານບໍ່ແນ່ໃຈວ່າຈະເລີ່ມຕົ້ນຢູ່ໃສ. ບໍ່ຕ້ອງກັງວົນ, ພວກເຮົາໄດ້ເຮັດໃຫ້ທ່ານຄຸ້ມຄອງ. ໃນບົດຂຽນນີ້, ພວກເຮົາຈະອະທິບາຍຫ້າສິ່ງທີ່ທ່ານຕ້ອງຮູ້ເພື່ອຊ່ວຍໃຫ້ທ່ານ...