Ultramsg API ile sohbet robotu oluşturmak çok kolay, Python dilini kullanarak basit adımlarla bir müşteri hizmetleri sohbet robotu ve en iyi yapay zeka sohbet botu oluşturabilirsiniz.
Chatbot WhatsApp botunun fırsatları ve görevleri
- Komut listesinin çıktısı.
- Üzerinde çalışan botun sunucu zamanının çıktısı .
- Telefon numarasına veya gruba resim gönderme.
- Ses dosyası gönderiliyor.
- ppt ses kaydı gönderiliyor.
- Video Dosyası Gönderiliyor.
- Kişi gönderiliyor.
Adım 1: şişeyi kurun
FLASK çerçevesini kullanarak sunucuyu dağıtmamız gerekiyor.
FLASK, gelen isteklere uygun şekilde yanıt verilmesini ve bunları işlemesini sağlar.
pip install flask
Adım 2: ngrok’u kurun
yerel kalkınma amaçları için bir tünel açma hizmeti gereklidir. Bu örnekte ngrok kullanılmıştır, ngrok’u buradan indirebilirsiniz.
Adım 3: Yeni şişe uygulaması oluşturun
Dosyayı oluşturacağız: app.py Ve içine aşağıdaki kodu yazıyoruz
from flask import Flask, request, jsonify
from ultrabot import ultraChatBot
import json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def home():
if request.method == 'POST':
bot = ultraChatBot(request.json)
return bot.Processingـincomingـmessages()
if(__name__) == '__main__':
app.run()
Adım 4 : Gelen mesaj işleme
Dosyayı oluşturacağız: ultrabot.py Ve içine aşağıdaki kodu yazıyoruz
import json
import requests
import datetime
class ultraChatBot():
def __init__(self, json):
self.json = json
self.dict_messages = json['data']
self.ultraAPIUrl = 'https://api.ultramsg.com/{{instance_id}}/'
self.token = '{{token}}'
def send_requests(self, type, data):
url = f"{self.ultraAPIUrl}{type}?token={self.token}"
headers = {'Content-type': 'application/json'}
answer = requests.post(url, data=json.dumps(data), headers=headers)
return answer.json()
def send_message(self, chatID, text):
data = {"to" : chatID,
"body" : text}
answer = self.send_requests('messages/chat', data)
return answer
def send_image(self, chatID):
data = {"to" : chatID,
"image" : "https://file-example.s3-accelerate.amazonaws.com/images/test.jpeg"}
answer = self.send_requests('messages/image', data)
return answer
def send_video(self, chatID):
data = {"to" : chatID,
"video" : "https://file-example.s3-accelerate.amazonaws.com/video/test.mp4"}
answer = self.send_requests('messages/video', data)
return answer
def send_audio(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/audio/2.mp3"}
answer = self.send_requests('messages/audio', data)
return answer
def send_voice(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/voice/oog_example.ogg"}
answer = self.send_requests('messages/voice', data)
return answer
def send_contact(self, chatID):
data = {"to" : chatID,
"contact" : "[email protected]"}
answer = self.send_requests('messages/contact', data)
return answer
def time(self, chatID):
t = datetime.datetime.now()
time = t.strftime('%Y-%m-%d %H:%M:%S')
return self.send_message(chatID, time)
def welcome(self,chatID, noWelcome = False):
welcome_string = ''
if (noWelcome == False):
welcome_string = "Hi , welcome to WhatsApp chatbot using Python\n"
else:
welcome_string = """wrong command
Please type one of these commands:
*hi* : Saluting
*time* : show server time
*image* : I will send you a picture
*video* : I will send you a Video
*audio* : I will send you a audio file
*voice* : I will send you a ppt audio recording
*contact* : I will send you a contact
"""
return self.send_message(chatID, welcome_string)
def Processingـincomingـmessages(self):
if self.dict_messages != []:
message =self.dict_messages
text = message['body'].split()
if not message['fromMe']:
chatID = message['from']
if text[0].lower() == 'hi':
return self.welcome(chatID)
elif text[0].lower() == 'time':
return self.time(chatID)
elif text[0].lower() == 'image':
return self.send_image(chatID)
elif text[0].lower() == 'video':
return self.send_video(chatID)
elif text[0].lower() == 'audio':
return self.send_audio(chatID)
elif text[0].lower() == 'voice':
return self.send_voice(chatID)
elif text[0].lower() == 'contact':
return self.send_contact(chatID)
else:
return self.welcome(chatID, True)
else: return 'NoCommand'
Adım 5 : WhatsApp Chatbot projesini başlatın
FLASK sunucusunu çalıştırın
flask run
ngrok’u çalıştır
Windows için ngrok’u çalıştırın:
ngrok http 5000
Mac için ngrok’u çalıştırın:
./ngrok http 5000
Adım 6 : Örnek ayarlarında URL Web kancasını ayarlayın
ngrok çalıştırdıktan sonra, örneğin bir tane görmelisiniz:
https://7647-115-83-121-164.ngrok.io
URL’nizi Örnek ayarlarına yapıştırın ، Aşağıdaki resimdeki gibi:
Kodda kullanılan Chatbot İşlevleri
send_message
WhatsApp metin mesajları göndermek için kullanılır
def send_message(self, chatID, text):
data = {"to" : chatID,
"body" : text}
answer = self.send_requests('messages/chat', data)
return answer
- ChatID – Mesajın onun için gönderileceği sohbetin kimliği, örn. [email protected] .
- Metin – Mesajın metni.
time
Geçerli sunucu saatini gönderir.
def time(self, chatID):
t = datetime.datetime.now()
time = t.strftime('%Y-%m-%d %H:%M:%S')
return self.send_message(chatID, time)
- ChatID – Mesajın onun için gönderileceği sohbetin kimliği, örn. [email protected] .
send_image
Telefon numarasına veya gruba resim gönderin
def send_image(self, chatID):
data = {"to" : chatID,
"image" : "https://file-example.s3-accelerate.amazonaws.com/images/test.jpeg"}
answer = self.send_requests('messages/image', data)
return answer
send_video
Telefon numarasına veya gruba Video gönder
def send_video(self, chatID):
data = {"to" : chatID,
"video" : "https://file-example.s3-accelerate.amazonaws.com/video/test.mp4"}
answer = self.send_requests('messages/video', data)
return answer
send_audio
Telefon numarasına veya gruba bir ses dosyası gönderin
def send_audio(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/audio/2.mp3"}
answer = self.send_requests('messages/audio', data)
return answer
send_voice
Telefon numarasına veya gruba bir ppt ses kaydı gönderin
def send_voice(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/voice/oog_example.ogg"}
answer = self.send_requests('messages/voice', data)
return answer
send_contact
Telefon numarasına veya gruba bir kişi veya kişi listesi gönderme
def send_contact(self, chatID):
data = {"to" : chatID,
"contact" : "[email protected]"}
answer = self.send_requests('messages/contact', data)
return answer
Processingـincomingـmessages
def Processingـincomingـmessages(self):
if self.dict_messages != []:
message =self.dict_messages
text = message['body'].split()
if not message['fromMe']:
chatID = message['from']
if text[0].lower() == 'hi':
return self.welcome(chatID)
elif text[0].lower() == 'time':
return self.time(chatID)
elif text[0].lower() == 'image':
return self.send_image(chatID)
elif text[0].lower() == 'video':
return self.send_video(chatID)
elif text[0].lower() == 'audio':
return self.send_audio(chatID)
elif text[0].lower() == 'voice':
return self.send_voice(chatID)
elif text[0].lower() == 'contact':
return self.send_contact(chatID)
else:
return self.welcome(chatID, True)
else: return 'NoCommand'
Bu videoda önceki adımları görebilirsiniz:
kullanışlı bağlantılar
- Tüm kodlar GitHub’da mevcuttur.
- Python kullanarak WhatsApp API mesajları gönderin.
- Ultramsg Platformu kullanarak WebHooks nasıl ayarlanır
- python ve webhook kullanarak WhatsApp mesajları nasıl alınır.