Using Telegram Bot with Raspberry Pi

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderators: mindphp, ผู้ดูแลกระดาน

prakon
PHP Super Hero Member
PHP Super Hero Member
Posts: 561
Joined: 02/07/2018 10:45 am

Using Telegram Bot with Raspberry Pi

Post by prakon »

ปัจจุบันมีแอพพลิเคชั่นที่ใช้ในการแจ้งเตือนและรับส่งข้อมูลระหว่างมือถือกับบอร์ด Raspberry pi(ราสเบอรี่ไพ) มากมาย
อาทิเช่น ไลน์ เฟสบุ๊ค และอื่นๆอีกมากมาย
line600x600_240x240.jpg
line600x600_240x240.jpg (3.89 KiB) Viewed 692 times
logo-facebook_240x240.jpg
logo-facebook_240x240.jpg (4.61 KiB) Viewed 692 times
แต่ก้มีอีก 1 แอพพลิเคชั่น ที่คล้ายๆไลน์และเฟสบุ๊คนั่นก้คือ Telegram(เท-เล-แกรม) ซึ่งเป็นอีกหนึ่งแอพทีมีความปลอดภัยมากกว่าไลน์กับเฟสบุ๊คและเชื่อมต่อกับบอร์ด raspberri pi(ราสเบอรี่ไพ)ได้ง่ายกว่ามากอักทั้งโค้ดต่างๆค่อนข้างเข้าใจง่ายไม่ซับซ้อน
telegram-logo.jpg
telegram-logo.jpg (9.1 KiB) Viewed 691 times
ต่อมาเราจะมาดูขั้นตอนการใช้เลยนะครับ
step1 เราจะต้องโหลดแอพนี้มาติดตั้งบนสมาร์ทโฟนของเรา โดยสามารถโหลดได้ทั้งใน playstore,appstore หลังจากนั้นเข้าไปที่ BotFather(ถ้าไม่มีให้เสริชชื่อหาในช่องค้นหามุมขวาบน)
botfather_149x240.jpg
botfather_149x240.jpg (5.54 KiB) Viewed 688 times
tele1.png
tele1.png (54.35 KiB) Viewed 688 times
step2 เมื่อเราเข้ามาได้แล้วให้เรานั้นพิมพ์คำว่า /start และ /newbot เพื่อสร้างบอทของเราขึ้นมาและ ให้เราพิมพ์ชื่อบอทของเรา /(ชื่อบอท ) หลังจากนั้นให้เราพิมชื่อบอทเมื่อสักครู่นี้ใหม่แล้วตามด้วยคำว่า Bot หรือ _bot หลังจากนั้นเราจะได้ token(โทเค่น) สำหรับใช้ในการเขียนโค้ดในลำดับถัดไป
token_134x240.jpg
token_134x240.jpg (14.3 KiB) Viewed 688 times
ตัวอย่าง

step3 หลังจากที่เราเตรียมความพร้อมบนสมาร์ทโฟนของเราแล้วหลังจากนั้นให้เรามาเตรียมความพร้อมของบอร์ด Raspberri pi ของเรา โดยการเปิดหน้าต่าง Terminal(เทอร์มินอล)ขึ้นมาแล้วพิมพ์ดังนี้
terminal_320x207.jpg
terminal_320x207.jpg (6.17 KiB) Viewed 686 times

Code: Select all

sudo apt-get install python-pip
sudo pip install telepot
เพียงเท่านี้ โมดูลของแอพ telegram ก็พร้อมสำหรับใช้งานแล้ว

step 3 เริ่มเขียนโค้ดกันเลย
อันนี้เป็นตัวอย่างการเขียนโค้ดครับ

Code: Select all

import time, datetime   
import telepot                  #เรียกใช้โมดูล เทเลพอต(Telegram)
from telepot.loop import MessageLoop
now = datetime.datetime.now()
def action(msg):        #ฟังก์ชันนี้จะถูกเรียกใช้งานก็ต่อเมื่อผู้ใช้พิมพ์อะไรจากสมาร์ทโฟนส่งมาให้บอทที่สร้างขึ้น
    chat_id = msg['chat']['id']
    command = msg['text']

    print 'Received: %s' % command

    if command == '/hi':                      #ถ้าบอทได้รับค่าว่า /hi  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendMessage (chat_id, str("Hi! CircuitDigest"))
    elif command == '/time':                #ถ้าบอทได้รับค่าว่า /time  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendMessage(chat_id, str(now.hour)+str(":")+str(now.minute))
    elif command == '/logo':                  #ถ้าบอทได้รับค่าว่า /logo  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg") #เราสามารถเอา url รูปอื่นมาใส่ได้
    elif command == '/file':                   #ถ้าบอทได้รับค่าว่า /file  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendDocument(chat_id, document=open('/home/pi/Aisha.py')) #สามารถเปลี่ยนเส้นทางการส่งไฟล์ได้โดยใส่ที่อยู่ไฟล์ที่เราต้องการ
    elif command == '/audio':                #ถ้าบอทได้รับค่าว่า /audio  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendAudio(chat_id, audio=open('/home/pi/test.mp3'))   #สามารถเปลี่ยนเส้นทางการส่งไฟล์mp3ได้โดยใส่ที่อยู่ไฟล์ที่เราต้องการ
    elif command == '/getid':    #ฟังก์ชั่นสำหรับดูแชทไอดี
    	 telegram_bot.sendMessage (chat_id, str(chat_id))

telegram_bot = telepot.Bot('468382312:AAFhURMxpVlMWEdFzbIQLszBPFEUpAeOLFQ')  #ในวงเล็บนี้จะเป็นส่วนของtokenให้เรานำ token ของเรามาใส่ในวงเล็บ
print (telegram_bot.getMe())

MessageLoop(telegram_bot, action).run_as_thread()
print 'Up and Running....'

while 1:
    time.sleep(10)
step4
ถ้าหากเราอยากจะให้แอพส่งข้อมูลเองหรือแจ้งเตือนอัติโนมัติ ให้เรานั้นส่งคำว่า /getid มาให้บอทจะส่งแชทไอดีมาให้เราให้เรานำแชทไอดีนั้นไปใช้งาน เช่น

Code: Select all

telegram_bot.sendMessage (ไอดีที่ได้มา, str("python lunched"))


te_278x240.jpg
te_278x240.jpg (21.66 KiB) Viewed 680 times
อ้างอิง
circuitdigest
itune

  • Similar Topics
    Replies
    Views
    Last post

Return to “Python Knowledge”

Who is online

Users browsing this forum: No registered users and 8 guests