Sebelum memulai menulis artikel ini, mungkin ada dari pembaca kenapa admin gak ngasih hasil dari codingannya ke dalam blog? itu kenapa ngak ada contoh dari codingannya? kok ngak di post min?
Ssttt nah untuk menghemat waktu admin akan mendampilkan hasil dari setiap artikel yang berisikan materi codingan ke dalam channel youtube hidayat code. Kalau semisal nanti videonya telah di post, nantinya akan kami upload juga ke dalam artikel yang ini, semisal belum ada berarti admin masih belum ngepost dan masih belum ada waktu untuk ngepostnya.
Seperti yang kita ketahui bahwa banyak sekali aplikasi-aplikasi bot yang di buat dengan menggukaan node js, pada kesemepatan kali ini admin akan membahas tutorial cara membuat bot absensi di telegram dengan menggunakan node js.
Silahkan terlebih dahulu download dan instal telegram ke dalam hp kalian, jika sudah instal dan membuat akunnya buka botfather di dalam kolom pencarian.
Seperti biasa silahkan set new bot dengan menggunakan command /newboot
silahkanseting nama bot yang ingin kamu buat sebagai contoh hollan_bot
langkah selanjutnya silahkan ikuti intruksi yang di berikan oleh botfather.
Kemudian akan ada balasan dari bot berupa token yang nantinya kita gunakan untuk membuat botnya. Save token tersebut, langkah berikutnya ialah membuat codinganya. Kamu bisa menggunakan VSCode atau kode editor lainnya.
Silahkan buat folder untuk nama bot kalian dan masukan perintah command di bawah ini.
$ npm init
Kemudian kita membutuhkan package manager express, dotenv, dan node-telegram-bot-api jalankan command di bawah ini.
$ npm install express dotenv node-telegram-bot-api
Langkah berikutnya buka code editor kalian dan cari file bernama package.json dan tambahkan “start”: “node index.js”, seperti pada gambar di bawah ini.
Kemudian buat file environment dengan nama file .env lalu copy code di bawah ini ke dalam file yang telah kamu buat tadi serta tambahkan juga kode token telegram yang telah kamu dapatkan ke dalam baris TELEGRAM_TOKEN.
APP_PORT=1000 TZ=Asia/Jakarta TELEGRAM_TOKEN=8ashc89asyda8hd823h
Lalu buat file dengan nama index.js
dan tambahkan code di bawah ini ke dalam file tersebut.
'use strict' | |
require('dotenv').config() | |
const express = require('express') | |
const app = express() | |
const telegram = require('node-telegram-bot-api') //package for integration telegram and nodejs | |
const token = process.env.TELEGRAM_TOKEN //token telegram | |
const bot = new telegram(token, { polling: true }) // init and config | |
const emoji = '\u{00002714}' // emoji telegram | |
bot.onText(/\/checkin/, async (msg, match) => { // get command message for telegram example /checkin | |
const username = match.input.split('|')[1] // get input text message on telegeram | |
const attendance = match.input.split('|')[2] | |
const type = match.input.split('|')[3] | |
const times = match.input.split('|')[4] | |
const chatId = msg.chat.id // chat id user telegram | |
if (attendance === undefined) { // handle if message empty | |
// send message if empty | |
bot.sendMessage(chatId, 'format harus di isi Contoh : | username | Hadir | Work From Home | 11:00') | |
return | |
} | |
// send message if success | |
bot.sendMessage( | |
chatId, | |
`<b>${msg.chat.first_name}</b> : <b>${attendance}</b> - <b>${type}</b> - <b>${times}</b> ${emoji}`, | |
{ parse_mode: 'HTML' } | |
) | |
}) | |
bot.onText(/\/checkout/, async (msg, match) => { | |
const username = match.input.split('|')[1] | |
const times = match.input.split('|')[2] | |
const chatId = msg.chat.id | |
if (username === undefined) { | |
bot.sendMessage(chatId, 'format harus di isi Contoh : | username | 12:00') | |
return | |
} | |
bot.sendMessage( | |
chatId, | |
`<b>${msg.chat.first_name}</b> : Berhasil Checkout - <b>${times}</b> ${emoji}`, | |
{ parse_mode: 'HTML' } | |
) | |
}) | |
app.listen(process.env.APP_PORT, () => { | |
console.log(`absensi bot running in port ${process.env.APP_PORT}`) | |
}) |
Save semua hasil kodingan tadi dan jalankan dengan menggunakan perintah.
$ npm start
Buka bot telegram yang sudah kamu buat tadi dan masukan perintah di bawah ini.
/checkin | hidayat | Hadir | Work From Home | 09:00
dan hasilnya seperti di bawah ini.
/checkout | hidayat | 09:00