今天要來講講機器人是怎麼運作的
這是一種網路架構,網頁大部分都是使用此架構
瀏覽器是客戶端(client),客戶端(client)主動
向伺服器(server)發送請求(request)
伺服器(server)會執行一些程式,之後把頁面被動
回應(response)給客戶端(client)
伺服器(server)需要一個 IP 位置,這樣子瀏覽器才知道要把請求(request)發到哪個地方
IP 位置就像是住家的地址一樣,而請求(request)就像是一封信
現在你發了一段訊息給機器人
但是並不是機器人直接回你訊息
詳細情況如下圖:
Icon 來源:https://www.flaticon.com/packs/programming-29
伺服器
方式被動接收訊息,需要有 IP 位置,通常會放在網站伺服器(Web Hosting)
上,要自己架設網站伺服器不是件容易的事,所以官方還提供了另一種做法客戶端
方式主動跟 TG 伺服器要訊息,可以直接在自己電腦上運作
,不需要架(租)伺服器也能讓機器人順利運作,缺點就是電腦要一直開著,當然你也可以使用雲端服務(IaaS、PaaS、SaaS)
HTTP GET
https://api.telegram.org/bot{Token}/{Method}?{Parameter1}={Value1}&{Parameter2}={Value2}
直接以網址參數
的方式傳送指令,GET 沒有 Body,只傳送 Headers (你可以當作不會傳送檔案過去),通常是用來取資料用,優點是可以直接用瀏覽器執行,缺點是有 2KB 的限制,雖然不太可能用到這長的指令,但還是比較建議使用 POST
HTTP POST
{"method":"Method","Parameter1":"Value1","Parameter2":"Value2"}
POST 是以 Body 傳送資料(檔案)
,程式通常都是以這種方式溝通,網頁裡的表單也經常是以這種方式傳送,資料不會顯示在網址列,可以傳送的資料大小比 GET 大得多:1MB ~ 2GB
https://core.telegram.org/bots/faq
https://core.telegram.org/bots/api