機器人介紹
機器人是運行在Potato上的第三方應用程式。 用户可以透過向機器人發送訊息、命令或內聯請求來與它們互動。
機器人開發者可以透過HTTPS請求調用機器人API開發出各種不同功能的機器人。
1. 可以用機器人做什麼?

機器人常用於下面的用途
- 自動發布訊息通知,例如新聞機器人,收到最新的新聞,可以第一時間推播給訂閲該機器人的用户。也例如監控警告機器人,可以監控伺服器運作狀態,發現異常,可以立即發送訊息通知服務管理人員。
- 可以與外部服務集成來豐富Potato聊天,例如和gif圖片伺服器集成,可以讓gif機器人搜尋各種動圖,讓Potato聊天更有趣方便。
BotGif , BotMusic, BotVote
- 自訂工具類別服務。 例如天氣預報機器人,翻譯機器人,航班時刻表查詢機器人,圖片機器人
BotPic
- 由於Potato自由開放,機器人幾乎可以做很多有趣的事情。
2. 機器人如何工作?
- 從本質上講,機器人是Potato上的特殊帳户,不需要額外的電話號碼即可建立。 使用者可以透過兩種方式與機器人進行交互
- 透過直接與機器人聊天或將其添加到羣組中來向機器人發送訊息和命令。例如和@BotMusic機器人聊天,直接發送歌曲名稱即可搜尋你該歌曲資訊。
- 內聯的方式進行交互,直接在輸入框輸入 @username
搜尋的關鍵字,則可以讓該機器人查詢您需要要找的內容,並展示在聊天窗口,用户可以選擇查詢到的內容發送給任何聊天對象,羣組或頻道,例如 @pic
跑車,即可得到很多張跑車的圖片。
- 用户發送的訊息,命令和請求將傳遞到Potato伺服器,
Potato伺服器將訊息轉發給用户自己的機器人服務,從而建立了Potato服務與機器人加密互動的通道,機器人和Potato伺服器需要透過機器人API進行。
- 機器人開發詳情請參考 Bot API
3. 怎麼創建機器人?

在Potato客户端中搜尋@BotFather,然後完成下面的步驟:
- 開啟BotFather聊天框,輸入 /newbot 指令。
- 輸入機器人的暱稱。
- 輸入機器人唯一的使用者名稱。
- 收到建立成功訊息及token時表示建立完成
4. 機器人和一般使用者的區別?
- 機器人沒有在線狀態,也沒有最後一次看到的時間戳, 只有一個
bot標籤,可以很明顯的區分普通用户和機器人。
- 機器人的訊息快取時間有限 — 發送給機器人的訊息已處理或在規定時間內未被處理,訊息會從快取中清除。
- 為了安全,機器人不能主動傳送訊息給用户。用户必須向機器人先發訊息,類似訂閲取得信任,之後機器人才能傳訊息給用户。
- 機器人用户名以bot結尾,官方機器人除外。
- 當把機器人加入羣組中,機器人必須將隱私模式設定為false,才能收到羣組的訊息。
- 機器人不用吃飯,不用睡覺,一天24小時運作。
5. 在哪裡可以找到機器人?

6. 機器人特色
Potato機器人有許多獨一無二的功能,例如可以在聊天中創建兩種類型的按鈕,內聯按鈕,鍵盤按鈕,支援常見的markdown語法,使文字排版更美觀,支援內聯模式。
內聯模式

- 使用者可以直接從任何聊天框中的文字輸入欄位透過內聯查詢與您的機器人互動。 他們所需要做的就是用您的機器人的用户名開始一條訊息,然後鍵入查詢.
- 收到查詢後,您的內嵌機器人可以傳回查詢結果。 用户點擊選擇其中的結果,它就會發送到用户目前打開的聊天中。
這樣,人們可以在任何聊天,羣組或頻道中發送查詢出的內容。
鍵盤
- 當然,可以教傳統的聊天機器人理解人類語言。 但是有時您希望用户提供一些更方便的輸入-這是自訂鍵盤變得非常有用的地方。
- 每當您的機器人發送訊息時,它都可以透過具有預先定義回應選項的特殊鍵盤傳遞(請參閲ReplyKeyboardMarkup)。
收到訊息的Potato客户端將向使用者顯示鍵盤。 輕觸任何一個按鈕將立即發送相應的命令。 這樣,您可以大大簡化與機器人的互動。
- 目前,鍵盤支援文字和表情符號。 以下是一些自訂鍵盤範例:



- 關於發送鍵盤按鈕請參考Bot API
sendTextMessage介面。
內聯按鈕
- 在某些情況下,您希望在不向聊天室發送任何訊息的情況下進行操作。 例如,當您的使用者變更設定或瀏覽搜尋結果時。
在這種情況下,您可以使用直接整合到它們所屬訊息中的嵌入式鍵盤。
- 與自訂回覆鍵盤不同,按下嵌入式鍵盤上的按鈕不會導致訊息傳送到聊天室。
相反,嵌入式鍵盤支援在幕後起作用的按鈕:回調按鈕,URL按鈕和切換為嵌入式按鈕。
- 使用回調按鈕時,機器人可以更新現有的訊息(或僅更新其鍵盤),以保持聊天整潔。
查看這些範例機器人,以查看內建鍵盤的運作:@music,@vote
命令
- 命令提供了一種與機器人通訊的更靈活的方式。 可以使用以下語法:
- /command [可選] [參數]
- 命令必須以“ /”符號開頭,且不得超過32個字元。 命令可以使用拉丁字母,數字和底線。 這裡有一些例子:
/get_messages_stats
/set_timer 10min Alarm!
/get_timezone London, UK
- 在與機器人進行的所有聊天中的輸入欄位中顯示一個額外的(/)按鈕。 輕擊它會鍵入“ /”並顯示命令列表。
- 高亮顯示訊息中的/命令。 當使用者點擊突出顯示的命令時,該命令將立即發送

- 如果羣組中有多個機器人,則可以將機器人使用者名稱新增至命令中,以避免混淆:
- /start @TriviaBot
- /start @ApocalypseBot
- 透過建議清單選擇命令時,將自動完成此操作。 請記住,您的機器人必須能夠處理其用户名後面的命令。
設定命令
- 為了使用户更容易的使用機器人,我們建議所有開發人員支援一些基本命令。
- /start--例如,透過發送問候訊息開始與使用者互動。 此命令還可用於將其他參數傳遞給機器人。
- /help-返回幫助訊息。 它可以是有關您的機器人可以做什麼的簡短文字以及命令列表。
- 當使用者首次開啟與機器人的對話時,將會看到一個開始按鈕。
機器人的個人資料頁面上的選單中將提供協助和設定連結。
隱私模式
- 機器人通常會被添加到羣組中,來對羣組進行自動管理,或發送通知。根據不同的需求,需要對機器人的隱私模式進行不同的設定:
- 預設機器人的隱私模式是開啟的,這樣機器人在羣組中將不會收到用户發送的訊息,也無需去處理大量無關的訊息,節約伺服器資源.
- 如果機器人的業務需要收到羣組的訊息,則必須停用隱私模式
- 開啟或停用隱私模式在 @BotFather 中進行設置
7. BotFather
跳到頂部瞭解更多有關Potato機器人資訊 »
@BotFather可以幫您創建Potato個人機器人並管理您的機器人。
創建一個新機器人
- 使用
/newbot指令開始創建您的機器人,您只需要填寫機器人暱稱和機器人名稱設定即可完成個人機器人創建,@BotFather將為生成一個token為您的新機器人的授權;
- 機器人暱稱將用於產生機器人名片;
- 機器人名稱將使用者發現您的機器人,機器人名稱必須使用a-z, 0-9和_, 最小長度為5個字元, 最大長度為24個字元,
不能以數字開頭並且以bot結尾(不區分大小寫);
- 產生的token(如"110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw")是授權給機器人並將請求發送到Potato
Bot API服務所必需的;
產生新token
- 如果您發現你的token被盜用或想更新,您可以使用
/token指令產生一個新的token。
BotFather指令
- /mybots - 傳回具有方便控制的機器人清單包含機器人token、編輯、設定、刪除等功能。
編輯您的機器人
- /setname - 編輯機器人名
- /setdescription -
編輯機器人簡介,一個簡短的文字(最多512個字元),描述您的機器人,它將顯示在'該機器人能做什麼?'中;
- /setabouttext - 編輯機器人關於,一個更簡短的文本(最多120個字符), 此信息將顯示在機器人的個人資料頁面上, 當您與他人分享時,
此訊息也會一起傳送;
- /setuserpic - 編輯機器人頭像,為機器人設定一個合理頭像;
- /setcommands -
編輯機器人指令,當使用者在與您機器人聊天框中輸入/時,使用者將看到這些指令和指令描述清單。建議指令使用字母數字加底線,不超過32個字符,不區分大小寫,和指令文本描述;
- /deletebot - 刪除機器人
8. 內聯模式
- 除了便利的指令模式,Potato還可以使用內聯模式與您的機器人進行互動。如果您開啟該功能使用者可以在任何聊天對話方塊中@機器人名稱來呼叫您的機器人,開發者將收到內嵌訊息推播以作出對應功能回饋。

- 首先您需要在@BotFather中使用/setinline開啟該功能內聯模式並設定一句查詢提示,這樣用户@機器人名稱時將告訴他們從您的機器人裡的查詢內容(e.g.,
Search GIFs),或使用/empty關閉此功能。
- 詳情請參閲Bot API
Manual。
內聯查詢結果
- Potato目前支援5種內嵌查詢結果顯示,如:文章、網頁、圖片、影片、GIF。

- 客户端可以根據內容的類型使用垂直或水平捲動顯示結果:

- 使用者點選查詢結果即可傳送並清除當次查詢內容.
切換內聯/PM模式
- 一些嵌入式機器人可以從中受益,例如將它們連接到外部服務(例如YouTube)上的帳户。我們提供了一種簡單的方法,可以在與機器人的私人聊天以及用户希望共享內聯結果的任何聊天之間進行切換。

- 您可以在內聯結果上方顯示一個特殊的「切換到PM」按鈕。該按鈕將開啟與機器人的私人聊天,並傳遞您選擇的參數,以便您可以提示使用者進行相關的設定操作。完成後,您可以使用帶有switch_inline_query自訂鍵盤將使用者返回到原始聊天介面。
傳播
- 使用內聯發送的訊息標題中將攜帶你的機器人訊息.
- 當使用者點擊訊息標題中的bot使用者名稱時,查詢內容將自動插入輸入框中。
內聯模式範例
- 您可以使用以下包含內聯功能的官方機器人:
@gif – GIF search
@music – MUSIC search
@app – APP search
@vote – Search polls
9. ADBot
注意:
- 必須先將ADBot加入須管理的羣組內;
- ADBot只支援超級羣管理;
- ADBot必須設定成超級羣組管理員並賦予對應權限;
如何添加屏蔽關鍵字
- 使用
/manage指令查看您是管理員身分羣組,然後選擇要由ADBot管理的羣組。
- 例:
- 點擊"新增"按鈕或使用
/add指令會為管理羣組新增屏蔽關鍵字。
- 例:
注意:
- 關鍵字長度限制為64位,一則訊息視為關鍵字;
- 一個羣組最多添加100個不重複關鍵字;
- 使用/done指令提交或結束目前操作;
被管理的羣組內訊息如果包含屏蔽關鍵字訊息將會被刪除。如您想要封鎖網址,您可以新增".com"或"www"等關鍵字。
- 例:
.
將ADBot設定成管理員並賦予對應權限
- As follows:
Delete keywords
- 例:
是否開啟踢人功能
- 踢出羣內廣告用户功能預設為關閉,請透過使用
/manage指令中的"踢人"按鈕(推薦)或/kick指令來檢查或設定該功能。
- 例:
新用户進羣驗證功能
- 新用户進羣需驗證碼功能預設為關閉,
請透過使用
/manage指令中的"驗證碼"按鈕(推薦)或/captch指令來檢查或設定該功能。
- 例: