Sevgili arkadaşlar merhaba. Bu alanda çok yeniyim. python dilinde netgsm api kullanarak masaüstü bir uygulamada gelen kutusu oluşturdum. Sorum şu. aynı şekilde bir giden kutusu, ileri tarihli gönderiyi iptal etmekle ilgili bir pencere oluşturamıyorum. yardımcı olursanız çok sevinirim. Saygılarımla. sms gönderen,kayıt yapan kod bloglarını aşağıda paylaşıyorum.
def send_sms(phone_number, message, netgsm_settings, start_date_time=None):
api_url = "https://api.netgsm.com.tr/sms/send/get/"
payload = {
"usercode": netgsm_settings["user_code"],
"password": netgsm_settings["password"],
"gsmno": phone_number,
"message": message,
"msgheader": netgsm_settings["header"],
"charset": "utf-8",
}
if start_date_time:
payload["startdate"] = start_date_time
response = requests.get(api_url, params=payload)
if response.status_code == 200:
messagebox.showinfo("Başarılı", "SMS başarıyla gönderildi.")
else:
messagebox.showerror("Hata", f"SMS gönderilemedi, hata kodu: {response.status_code}")
load_appointments()
bu da gelen kutusu olayım.
def show_incoming_messages(main_window, netgsm_settings):
global admin_announcements_text, reply_button, send_button
incoming_messages = get_incoming_messages(netgsm_settings) # API'den gelen mesajları al
# Pencere ve stil ayarları
messages_window = tk.Toplevel(main_window)
messages_window.title("Gelen Mesajlar")
center_window(messages_window, 600, 400)
messages_window.attributes('-topmost', True)
messages_window.iconbitmap('owl.ico') # Gelen kutusu penceresi için ikon ayarı
style = ttk.Style(main_window)
style.configure("Treeview", font=('Helvetica', 10), rowheight=25)
style.configure("Treeview.Heading", font=('Helvetica', 12, 'bold'))
style.layout("Treeview", [('Treeview.treearea', {'sticky': 'nswe'})]) # Scrollbar için
columns = ("gönderen", "mesaj", "gönderim tarihi")
messages_treeview = ttk.Treeview(messages_window, columns=columns, show='headings')
for col in columns:
messages_treeview.heading(col, text=col.capitalize())
messages_treeview.column(col, width=200, anchor=tk.W)
# Gelen mesajları ayrıştır ve Treeview'a ekle
for message in incoming_messages:
try:
sender, content, sent_date = message.split('|')
messages_treeview.insert('', tk.END, values=(sender, content, sent_date))
except ValueError:
# Mesaj beklenen formatta değilse atla
continue
messages_treeview.pack(expand=True, fill='both')
# ToolTip sınıfını mesaj listesi widget'ına uygula
tooltip = ToolTip(messages_treeview)
# Butonlar için Frame oluşturuluyor
button_frame = ttk.Frame(messages_window)
button_frame.pack(side='bottom', fill='x', pady=10)
# Yanıtla butonu ekle
reply_button = ttk.Button(button_frame, text="Yanıtla", style="Custom.TButton", command=lambda: \
reply_to_message(messages_treeview, netgsm_settings))
reply_button.pack(side='left', padx=5)
# Mesaj Gönder butonu
send_button = ttk.Button(button_frame, text="Mesaj Gönder", style="Custom.TButton", command=lambda: send_new_message(netgsm_settings))
send_button.pack(side='left', padx=5)
def save_netgsm_settings(settings, filename="netgsm_settings.json"):
with open(filename, "w") as file:
json.dump(settings, file)
def load_netgsm_settings(filename="netgsm_settings.json"):
if not os.path.exists(filename):
return {}
with open(filename, "r") as file:
return json.load(file)
netgsm_settings = load_netgsm_settings()