Menerima SMS biasa ke Viber dan Telegram instant messenger (menggunakan gateway GoIP)

Di banyak perusahaan yang menggunakan IP-telephony dan menggunakan GSM-gateway untuk komunikasi korporat, pertanyaan yang sering muncul adalah menerima dan mengirim SMS dari nomor mereka.

Untuk model GOIP Cina, ada solusi GOIP-SMS Server yang baik, yang telah berulang kali disebutkan di Internet dan di komunitas Habr kami juga. Ini adalah produk yang sederhana, gratis dan nyaman, tetapi SMS melalui WEB, terutama dari ponsel, sangat tidak nyaman.

Ada ide untuk menerima dan mengirim SMS menggunakan messenger - dan diimplementasikan dalam satu jam menggunakan skrip Python3.6 sederhana dan bot Telegram (dan 2 bulan kemudian dipindahkan ke Viber)

Logikanya adalah sebagai berikut: Kami memproses dan memilah permintaan, mengekstrak badan SMS, mengirimkannya ke bot dan mengirimkannya ke obrolan pribadi - kami menerima SMS, topik ini sangat menarik bagi pemilik iPhone dengan 1 sim, ketika Anda dengan cepat perlu menerima pesan dalam perjalanan bisnis atau liburan, dari bank atau layanan pendaftaran atau mencari tahu tentang penggantian operator:

Jadi, kita akan mempertimbangkan bagian pertama, yaitu, bagaimana mendapatkan SMS lengkap dari jaringan GSM langsung di Telegram, kita perlu:

  • Server SMS GoIP
  • Daftarkan bot (ambil TOKEN Anda dari ayah semua bot @BotFather)
  • Daftarkan kotak surat baru di Gmail dan aktifkan penerimaan IMAP

Kami akan menganalisis skrip contoh, tetapi pertama-tama di server SMS kami akan menambahkan email penerima kami (beberapa email dapat dipisahkan dengan koma:

gambar

Pertimbangkan skripnya:

import imaplib import email import telebot #      pip install PyTelegramBotAPI bot = telebot.TeleBot('YOUTOKENBOT') #   mail = imaplib.IMAP4_SSL('imap.gmail.com') mail.login('yougmail@gmail.com', 'gmailpassword') #   @gmail mail.list() #      mail.select('INBOX') #     result, data = mail.uid('search', None, 'UNSEEN') #   i = len(data[0].split()) for x in range(i): latest_email_uid = data[0].split()[x] result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)') raw_email = email_data[0][1] mail.store(latest_email_uid, '+FLAGS', '\Deleted') #       raw_email_string = raw_email.decode('utf-8') email_message = email.message_from_string(raw_email_string) #       for part in email_message.walk(): if part.get_content_type() == "text/html" or part.get_content_type() == "text/plain": body = part.get_payload(decode=True) s = (email_message['Subject']) numb = s[5:16] #    11    7XXXXXXXXXX   ,  12      s[5:17] mss = str(body.decode('unicode-escape')) #      Python3  unicode,  2      abon = mss[54:67] #    smss = mss[77:] #   ,      soobsh=( numb + 'n'+ 'n' + smss + 'n' + ':' + abon) #    bot.send_message(chat_id, soobsh) #   chat_id       else: continue 

Sekarang kita menjalankan skrip, mengirim SMS ke SIM kita dan menunggu pemrosesan - sekitar 3 detik yang diperlukan untuk mentransfer SMS ke messenger, jika semuanya benar, maka kita melihat pesan kita di TelegramBot kami
(bilangan real dihapus untuk menghindari konflik "Musim Semi"):

gambar

gambar

gambar

Anda dapat membungkus skrip dalam "fungsi def" dan menyebutnya setiap 3 atau 20 atau berapa detik yang Anda butuhkan! Tergantung pada frekuensi menerima SMS ok!

Jika seseorang tidak berhasil mengulang, tulis - kami akan menganalisis setiap kasus ...

Sampai jumpa di artikel selanjutnya!
73!

PS: artikel berlangsung sekitar satu tahun di kotak pasir (disetujui oleh UFO pada 20/08/2018) mengalami beberapa perubahan, tampaknya artikel lama tidak secara otomatis datang, bahkan jika artikel baru diizinkan untuk menjadi anggota penuh. Saya menerbitkan aslinya.

Sekarang bisa dibicarakan.

Source: https://habr.com/ru/post/id464671/


All Articles