產品開發 | 使用Telegram Bot製作一隻傳話鴿(一)
如何跟Telegram申請一隻Telegram Bot機器人,並透過Google App Script來建立Telegram Bot開發環境
前一篇和大家說明,我與夥伴佳璋所開發的傳話鴿Telegram Bot,是一款能夠以匿名的方式幫你傳達心裡話給對方的產品,今天要與大家分享我們是如何使用Telegram Bot開發出傳話鴿的過程(由於文章篇幅關係將會以系列文的方式與大家分享)。
產品開發 | 傳話鴿-傳遞你的悄悄話
最近我們團隊在網路上捕獲了一隻魔法寵物傳話鴿,快來瞧瞧他有什麼特殊能力吧!
medium.com
一、跟Telegram Bot Father申請一隻Telegram Bot
首先在製作第一隻Telegram Bot之前,我們必須要先和Telegram申請一隻機器人,不管你是用PC版還是手機版的Telegram,在搜尋欄中輸入的「@BotFather」,你就可以向Telegram申請一隻Telegram Bot來實作。
BotFather掌管了Telegram Bot機器人的設定,包含Bot的名稱、描述、圖片與Access Token(存取權限)等,我們都必須要透過BotFather來進行設定。
首先我們可以在對話輸入「/start」可以看到關於BotFather的一些基本指令,在使用BotFather設定你的Telegram Bot時,幾乎都是使用「/+指令」的方式做操作,來與BotFather進行對話。
在BotFather中新建一隻Telegram Bot
我們可以在BotFather的對話視窗中,輸入「/newbot」建立一隻Telegram Bot,接著BotFarther就會跟你說你可以幫你的Telegram Bot取的名字,這邊的名字是指用戶在Telegram Bot看到的機器人名稱,例如:「傳話鴿」。
設定機器人的名稱後,接著BotFather會要求你設定一組「Bot Username」,這邊的Bot Username是指在BotFather中的唯一名稱,先前有提到說BotFather長裹著所有Telegram Bot的殺生大權,然而BotFather是如何識別出這麼多的機器人呢?,就是靠的這組Bot Username,而他也必須唯一值,才不會與其他開發者的Telegram Bot有所衝突。
因此我們在這邊設定一組「Alex5252JJTestBot」做舉樂說明。
完成申請後,BotFather會給你一組Access Token,作為存取呼叫這隻Telegram Bot的權限,這邊要提醒大家必須要妥善保管這組Access Token,因為當別人取的你的這組Access Token時,也就表示他有權利來呼叫你的Telegram Bot機器人。
在BotFather中查詢你的Telegram Bot
回到BotFather對話視窗,在下方輸入「/mybots」後,就可以看到你所建立的Telegram Bot。
我們這邊以「AlexTest」Telegram Bot做說明,點擊該Telegram Bot後,我們可以看到BotFather提供我們以下的設定資訊:
API Token :假設你忘了當初的申請Telegram Bot時候,BotFather給你的Access Token,亦或者你的Access Token不小心外流,你可以點擊API Token跟BotFather申請一組新的Access Token。
Edit Bot:這邊可以編輯你的Telegram Bot資訊,包含名稱、說明描述、圖片等。
Bot Setting:這邊提供你設定Bot帳號的資訊,包含該Bot是否可以被加入群組,Payments串接,Domain設定等等。
Payments:Telegram Bot所提供的第三方支付串接設定,這邊比較多人使用的應該是以Stripe為主。
Transfer Ownership:你可以決定要把這隻Telegram Bot的擁有者轉移給其他人,然而一但發生轉移,你將不再擁有該Telegram Bot的帳號權限。
Delete Bot:你可以刪掉你不要的Telegram Bot機器人。
二、使用Google Apps Script建立Telegram Bot開發環境
Google Apps Script是由Google所提供的一款雲端開發平台,主要支援JavaScript語法,由於是基於Google Apps Script是在Google的伺服器上運行,因此可以達到快速部署的效果,一般程式開發時,我們會先在電腦本機上進行第一版的實作,接著在後過Ngrok把我們的電腦變成可以與外界溝通的伺服器進行測試,沒問題後再透過使用Heroku等網頁伺服器,將電腦本機端程式碼進行部署,讓程式碼可以一直保持運行的狀態。
然而針對向Telegram Bot這樣輕量型的開發,我們可以直接透過Google Apps Script的環境來進行快速部署,省去本地測試和部署到伺服器的這段過程,加速整體的開發節奏。
然而Google Apps Script也是有一些限制,例如運行速度慢,且每次運行的時間最多只有6分鐘,每一個GAS程式指令每秒最多只能呼叫執行 30 次等。
但這些限制不影響目前我們團隊在進行傳話鴿Telegram Bot的開發,若以產品生命週期來檢視,傳話鴿目前還處於導入期階段,在用戶數不多的情況下些以最輕量的方式來推廣傳話鴿Telegram Bot,等用戶達到一定規模時,在思考是否要將程式碼改部署至AWS或Heroku等平台,來確保傳話鴿能夠承受大量用戶的傳話需求。
建立Google Apps Script專案
我們可以在Google關鍵字搜尋中輸入:「google apps script」後,找到搜尋Google Apps Script搜尋結果,點擊Start Scripting就可以進入Apps Script專案頁面,在Apps Script上點擊新專案,就可以進入Google Apps Script開發環境。
進入開發環境後,左側是專案的導覽列,包含專案資訊、程式碼開發區塊、觸發條件設定、執行紀錄與環境設定,在Google Apps Script中的程式碼都是以.gs做結尾,並支援JavaScript程式語言。
部署Google Apps Script程式碼
當我們在Google Apps Script完成開發後,點擊右上方的部署,選擇「部署作業新增」就可以開始佈建我們的程式碼,針對開發需求的不同Google Apps Script提供我們四種應用程式,分別為網頁應用程式、API、外掛套件與資料庫,但由於Telegram Bot是屬於網頁應用程式,因此我們在部署程式碼時,要選擇網頁應用程式。
在新增部署的前一刻,記得要把誰可以存取從「自己」改成「所有人」來確保只要任何知道這個應用者的使用者都可以透過你的權限來操作。
部屬完就可會得到一串網址,這串網址就是我們的網路應用程式的URL,這串URL網址將會和後續所提到的Telegram Bot Webhook設定時有關。
三、開發一款Telegram Bot傳話機器人
今天與大家分享了我們是如何與Telegram BotFather申請一隻Telegram Bot,並和大家說明為何我們選用Google Apps Script作為開發傳話鴿Telegram Bot的開發環境,下一篇將繼續為大家說明,我們是如何讓傳話鴿可以進行匿名傳話。
感謝各位朋友的支持與鼓勵!
當你/妳閱讀完這篇文章後,請依喜歡與實用程度給我1–10個拍手。
讓我能了解各位朋友寶貴的回饋意見,撰寫更優質的內容分享給你/妳!
參考資料:
Day 08-Google App Script特性 – iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
我們了解Google Apps後,我們再來看Google App Script有哪些特點吧。 GAS的語法主要是基於JavaScript 1.6和1.7跟1.8的部分功能。…
ithelp.ithome.com.tw
Ten articles before and after
Track SSH Logins via Telegram. If you are a Dev-Ops Engineer, You and… – Telegram 中文版
data-rh=”true”>新手指南(3)—玩 Airdrop (空投)事前準備,15分鐘搞掂開始賺幣 – KK教玩幣 – Medium – Telegram 中文版
Домашняя бухгалтерия в telegram. Отложенные счета. – Telegram 中文版
CryptoBot en Telegram con Python. Creación de un Bot de Telegram con… – Telegram 中文版
data-rh=”true”>Connect Your Telegram to Boto – Boto – Telegram 中文版
How to send a message to your Telegram channel by Python? – Telegram 中文版
Setup Telegram bot app. Register a bot – Telegram 中文版
Tasker and Telegram integration: live location – Telegram 中文版
How to write UK Rent Telegram Bot – Telegram 中文版
Домашняя бухгалтерия в telegram. Электронные чеки. QR. – Telegram 中文版