Cara Membuat Bot WhatsApp Link di Telegram Menggunakan Golang: Panduan Lengkap
Apakah anda pernah membuat bot di telegram ? pada kesempatan ini, saya ingin membagikan panduan yang mudah agar anda bisa membuat bot whatsapp link di telegram menggunakan bahasa pemerograman golang.
Catatan penting bagi anda yang ingin mengikuti panduan ini agar dapat memastikan bahwa anda telah mengatur environment golang di laptop atau komputer anda terlebih dahulu. jika anda belum memiliki golang di sistem anda, anda dapat mengikuti panduan ini :
Panduan menginstall golang di windows, mac, linux
kemudian catatan kedua, anda harus memiliki api key telegram bot terlebih dahulu. agar code kita dapat terintegrasi dengan telegram.
Cara membuat telegram bot dengan bot father
Jika Anda sudah memastikan bahwa lingkungan Golang telah terpasang di laptop Anda, langkah selanjutnya adalah membuat proyek Golang terlebih dahulu.
Buat project golang
mkdir go-whatsapplink
cd go-whatsapplink
Inisialisasi project golang
go mod init go-whatsapplink
Install module bot telegram
go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5
Buat 2 folder di dalam direktori go-whatsapplink
- template : folder ini berisi file (.txt) yang nantinya dapat di akses atau di inisialisasi menggunakan fitur embed di Go.
- validation : folder ini berisi file golang yang dapat memproses inputan user yang mengirim pesan di dalam bot telegram
Buat file txt di dalam folder template
mohon maaf.
nomor whatsapp yang anda kirimkan harus 10 digit lebih dan di bawah 12 digit 🙏
mohon maaf.
masukan nomor hp yang benar yah 🙏
hello... selamat datang di whatsapp-link bot 😎
Anda dapat membuat tautan api nomor whatsapp dari bot ini.
kirimin saya nomor telepon Anda dan saya bisa mengalihkan percakapan pertama anda ke whatsapp melalui link yang akan saya berikan, tanpa perlu menyimpan nomor tersebut.
Buat file go di dalam folder validation
package validation
import (
"regexp"
"unicode"
)
func IsNumeric(s string) bool {
for _, c := range s {
if !unicode.IsDigit(c) {
return false
}
}
return true
}
func ValidateNumber(input string) bool {
regexPattern := ` + "`^\\d+$`" + `
re := regexp.MustCompile(regexPattern)
return re.MatchString(input) && len(input) >= 10 && len(input) <= 12
}
Inisialisasi code di dalam main.go
import (
_ "embed"
"fmt"
"go-whatsapplink/validation"
"log"
"strings"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)
- _ "embed" : import kosong yang akan di gunakan untuk menyertakan data statis pada file go. ini akan berguna untuk file txt yang telah kita buat.
- "fmt" : module standar golang untuk format input dan output.
- "go-whatsapplink/validation" : ini adalah paket kostum pada project yang telah di buat. akan di gunakan untuk melakukan validasi ke pada user.
- "log" : module standar golang, untuk menampilkan pesan log.
- "strings" : module standar golang untuk memanipulasi string.
- "tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"" : ini adalah module yang telah di get sebelumnya, dan di gunakan untuk melakukan integrasi ke telegram.
//go:embed template/welcome.txt
var welcome string
//go:embed template/invalidnum.txt
var invalidnum string
//go:embed template/invaliddigit.txt
var invaliddigit string
fmt.Println("RUNNING BOT......")
// config first api key for telegram bot
bot, err := tgbotapi.NewBotAPI("Your-API-KEY")
if err != nil {
log.Panic(err)
}
log.Printf("Authorized on account %s", bot.Self.UserName)
u := tgbotapi.NewUpdate(0)
u.Timeout = 60
updates := bot.GetUpdatesChan(u)
for update := range updates {
if update.Message != nil {
text := update.Message.Text
if strings.Contains(text, "/start") {
msg := tgbotapi.NewMessage(update.Message.Chat.ID, welcome)
msg.ReplyToMessageID = update.Message.MessageID
bot.Send(msg)
}else {
if validation.IsNumeric(text) {
if validation.ValidateNumber(text) {
// create link bot whatsapp
initializeLink := "https://api.whatsapp.com/send?phone=62"
link := initializeLink + text[1:]
msg := tgbotapi.NewMessage(update.Message.Chat.ID, link)
msg.ReplyToMessageID = update.Message.MessageID
bot.Send(msg)
}else {
// send message if digit number is invalid
msg := tgbotapi.NewMessage(update.Message.Chat.ID, invaliddigit)
msg.ReplyToMessageID = update.Message.MessageID
bot.Send(msg)
}
}else {
// send message if digit number is invalid number
msg := tgbotapi.NewMessage(update.Message.Chat.ID, invalidnum)
msg.ReplyToMessageID = update.Message.MessageID
bot.Send(msg)
}
}
}
}
go run main.go
Posting Komentar