跳至主要內容

機器人:開發者入門

機器人是運行在Potato內部的第三方應用程式。用户可以透過發送訊息、命令和內聯請求與機器人互動。你透過HTTPS請求控制你的機器人,發送給我們的機器人API

1. 我能用機器人做什麼?

舉幾個例子,你可以用機器人來:

  • 取得客製化通知和新聞。機器人可以充當智慧報紙,發布後立即向你發送相關內容。

  • 與其他服務整合。機器人可以用外部服務的內容豐富Potato Chat。
    動圖BotMusic,BotVote

  • 接受Potato用户的付款。機器人可以提供付費服務,也可以作為虛擬商店使用。

  • 建立自訂工具。機器人可能會為你提供提醒、天氣預報、翻譯、格式調整或其他服務。
    貼紙機器人

  • 幾乎做其他任何事情。除了洗碗——機器人洗碗很糟糕。

2. 機器人是如何運作的?

從本質上講,Potato機器人是特殊帳户,無需額外電話號碼即可設定。使用者可以透過兩種方式與機器人互動:

  • 透過與機器人開啟聊天或加入羣組,向機器人發送訊息和指令。這對聊天機器人或新聞機器人(如官方@BotMusic機器人)非常有用。
  • 透過輸入機器人的@username和查詢,直接從輸入欄位發送請求。這允許內聯機器人直接向任何聊天、羣組或頻道發送內容。
    使用者發送的訊息、命令和請求會傳遞給運行在你伺服器上的軟體。我們的中介伺服器為您處理所有加密和與PotatoAPI的通訊。你透過一個簡單的HTTPS介面與該伺服器通信,該介面提供了簡化版的PotatoAPI。我們稱這個介面為我們的機器人API
    有關於機器人API的詳細描述
    »

3. 我該如何創建機器人?

有個......那個用機器人。只需與BotFather(下面描述)交談,並按照幾個簡單步驟操作。創建機器人並收到授權令牌後,請前往機器人API手冊,看看你可以教機器人做些什麼。
你也可以在這裡查看一些程式碼範例 »

4. 機器人與人類有何不同?

  • 機器人沒有線上狀態,也沒有最後一次出現的時間戳,介面上顯示的是「bot」這個標籤。
  • 機器人的雲端儲存有限——舊消息處理後不久可能被伺服器刪除。
  • 機器人無法主動與使用者對話。用户必須先將他們新增到羣組或發送訊息。人們可以透過連結或用户名搜尋找到你的機器人。potato.im/<bot_username>
  • 機器人用户名總是以“bot”結尾(例如@GIFBot@Stickerbot)。
  • 加入羣組時,機器人預設不會接收所有訊息(請參閲隱私模式)。
  • 機器人從不吃飯、睡覺或抱怨(除非有特別編程)。

5. 我可以在哪裡找到機器人?

Potato 中有許多機器人(包括官方 Potato 機器人和第三方機器人),為了方便用户找到每個機器人,Potato 提供了方便的尋找方式。用户可以透過以下方式找到機器人:
打開Potato,底部有導覽列。點擊“發現”,你會看到Bots Mall。
然後點擊機器人商城,那裡會顯示官方的Potato機器人,例如@GIFBot、BotMusic和BotGif等。批准後,第三方機器人也可以在機器人商場展示。
如果有審計或有任何問題,請@BotSupport

6. 機器人特性

Potato機器人在許多方面都很獨特——我們提供兩種鍵盤,額外的預設命令接口和深度鏈接,以及文字格式化,以及更多功能。

直聯模式

用户可以透過任何聊天中的文字輸入欄直接透過內聯查詢與你的機器人互動。他們只需用你機器人的用户名發送訊息,然後輸入查詢即可。
收到查詢後,你的機器人可以回傳一些結果。使用者一點擊其中一個,訊息就會被傳送到目前開啟的聊天室。這樣,人們可以在他們的聊天、羣組或頻道中向你的機器人要求內容。

我們也為你的機器人在線上和PM模式之間切換提供了簡單功能。
閲讀更多關於直聯模式的資訊 »

鍵盤

傳統的聊天機器人當然可以被教導去理解人類語言。但有時你需要用户更正式的回饋——這正是客製化鍵盤非常有用的地方。
每當你的機器人發送訊息時,它可以傳遞一個帶有預設回應選項的特殊鍵盤(請參閲ReplyKeyboardMarkup)。收到訊息的Potato應用程式會向使用者顯示你的鍵盤。輕按任何一個按鈕都會立即發送對應的命令。這樣你可以大幅簡化使用者與機器人的互動。
我們目前支援按鈕使用文字和表情符號。以下是一些自訂鍵盤範例:

如需瞭解更多定製鍵盤的技術信息,請參閲機器人API手冊(參見sendMessage)。

線上鍵盤與即時更新

有時候你更願意做事時不發訊息到聊天。例如,當使用者變更設定或翻閲搜尋結果時。在這種情況下,你可以使用直接整合在所屬訊息中的內聯鍵盤。
與自訂回覆鍵盤不同,按內聯鍵盤的按鈕不會發送訊息到聊天室。相反,內聯鍵盤支援幕後操作的按鈕:回調按鈕、URL按鈕以及切換到內聯按鈕。

當使用回撥按鈕時,你的機器人可以更新現有的訊息(或僅是鍵盤),以保持聊天內容整潔。看看這些範例機器人,看看內嵌鍵盤的實際操作:@music、@gif、@sticker。
閲讀更多關於內聯鍵盤和即時編輯的資訊 »

指揮

命令提供了一種更靈活的方式與機器人溝通。可以使用以下語法:

指令必須始終以“/”符號開頭,且字元不得超過32個字元。指令可以用拉丁字母、數字和底線。舉幾個例子:



以斜槓開頭的訊息總是傳遞給機器人(同時回覆其訊息和透過使用者名稱@mention機器人的訊息)。 Potato應用將:
/command [optional] [argument]/get_messages_stats/set_timer 10min Alarm!/get_timezone London, UK

  • 當使用者輸入「/」時,建議一份支援命令的清單和描述(要做到這一點,你需要向@GIFBot提供命令列表)。點擊清單中的命令會立即發送該命令。
  • 在所有與機器人聊天的輸入欄中顯示額外的(/)按鈕。點擊它會輸入一個“/”,並顯示命令列表。
  • 在訊息中高亮 /commands。當使用者點擊高亮命令時,命令會立即發送。

如果一個羣組中有多個機器人,可以為避免混淆而在命令中添加機器人使用者名稱:


當透過建議清單選擇命令時,這是自動完成的。請記住,你的機器人需要能夠處理其用户名後面緊接的命令。
/start@TriviaBot/start@ApocalypseBot

全域命令

為了讓使用者更容易在機器人多元宇宙中導航,我們請求所有開發者支援一些基本指令。 Potato應用程式會有這些指令的介面捷徑。

  • /start - 開始與使用者交互,例如發送問候訊息。這個指令也可以用來向機器人傳遞額外參數。

  • /help - 傳回幫助訊息。它可以是一段簡短的文字,介紹你的機器人能做什麼,或是一份指令清單。
    用户在首次與你的機器人對話時會看到一個開始按鈕。幫助和設定連結將在機器人個人資料頁的選單中提供。

    格式:加粗、斜體、定寬文字和內聯鏈接

    你可以在機器人訊息中使用加粗、斜體或定線文字,以及內嵌連結。 Potato客户會相應地呈現這些資訊。
    閲讀更多 Bot API 手冊 »

隱私模式

機器人經常被添加到羣組中,以增強人類用户之間的交流,例如透過提供新聞、外部服務通知或額外的搜尋功能。這在與工作相關的羣體中尤其如此。現在,當你和機器人共享羣組時,你往往會問自己:「我怎麼能確定這個小傢伙沒有把我的聊天記錄賣給競爭對手?」答案是——隱私模式。運行在隱私模式
的機器人不會接收到所有使用者傳送給羣組的訊息。相反,它只會獲得:

  • 以斜槓開頭的消息(見上方命令)
  • 回覆機器人自己的訊息
  • 服務訊息(新增或移除羣組的人等)
  • 來自其成員
    頻道的消息一方面,這讓我們中的一些人晚上睡得更好(戴著錫紙睡帽),另一方面——這讓機器人開發者節省了大量資源,因為他們每天不必處理成千上萬條無關資訊。
    隱私模式預設為所有機器人啟用,除了那些以管理員身分加入羣組的機器人(機器人管理員總是接收所有訊息)。它可以被停用,使機器人像普通用户一樣接收所有訊息。我們只建議在機器人工作絕對必要的情況下這樣做——用户總是能在羣組成員清單中看到機器人當前的隱私設定。在大多數情況下,使用強制回覆選項來處理機器人的訊息應該就足夠了。

7. 機器人之父

跳到頂部,瞭解關於Potato機器人的一切 »
@GIFBot 是唯一統治所有機器人的機器人。它會幫助你創建新的機器人並更改現有機器人的設定。

創建新機器人

使用 /newbot 指令建立新機器人。@GIFBot會要求你輸入姓名和使用者名,然後為你的新機器人產生授權令牌。
你的機器人名稱會顯示在聯絡資訊和其他地方。
用户名是一個簡短的名稱,用於提及和連結。使用者名稱長度為5-32個字符,大小寫不分,但只能包含拉丁字母、數字和底線。你的機器人使用者名稱必須以「bot」結尾,例如「david_bot」或「DavidBot」。
令牌是類似 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw 的字串,用於授權機器人並向機器人 API 發送請求。
Potato.im

產生授權令牌

如果你現有的令牌被洩漏或遺失了,使用/token指令產生一個新的。

機器人父親指令

剩下的命令就很直觀了:

  • /mybots — 返回你的機器人列表,並附帶方便編輯設定的控制

編輯機器人

  • /setname – 改變你的機器人名稱。
  • /setdescription — 更改機器人的描述,一份最多512個字元的簡短文本,描述你的機器人。用户會在與機器人對話的開頭看到這段文字,標題為「這個機器人能做什麼?」。
  • /setabouttext ——更改機器人關於訊息,更短的文字最多可達120字元。用户將在機器人的個人資料頁上看到這段文字。當他們與某人分享你的機器人時,這條簡訊會與連結一起發送。
  • /setuserpic — 更改機器人的頭像。能把臉和名字連結起來總是件好事。
  • /setcommands — 更改你的機器人支援的指令清單。用户在與你的機器人聊天中輸入或聊天時,會把這些命令視為建議。每個命令都有名稱(必須以斜槓“/”開頭,字母數字加下劃線,不超過32個字符,大小寫不區分)、參數和文字描述。當使用者在與你的機器人對話中輸入「/」時,會看到指令清單。
  • /deletebot — 刪除你的機器人並釋放其使用者名稱。

8. 內嵌機器人

  • 除了在私訊或羣組中發送命令外,用户還可以透過內聯查詢與你的機器人互動。如果啟用了內聯查詢,用户可以透過在任何聊天中的文字輸入欄輸入使用者名稱和查詢來呼叫你的機器人。查詢會透過更新發送給你的機器人。這樣,人們可以在他們的聊天、羣組或頻道中向你的機器人請求內容,而無需發送任何訊息。

  • 阿凡達

  • 若要啟用此選項,請發送 /setinline 命令@BotFather,並提供佔位文本,使用者輸入機器人名稱後會在輸入欄位中看到。

  • 相關方法和物件請參見機器人API手冊

輪滑成績

  • 內嵌機器人支援Potato中所有類型的內容(共6種)。他們能夠發送音樂、動圖、文章、圖片、動圖等多種內容。
  • 阿凡達
  • 客户端可以透過垂直或水平滾動顯示結果,具體取決於內容類型:
  • 阿凡達 阿凡達
  • 使用者一點擊物品,物品會立即傳送給收件人,輸入欄位也會被清除。

切換串聯/PM模式

  • 一些內聯機器人可以透過初始設定過程受益,例如將它們連接到外部服務(例如YouTube)的帳户。我們新增了一個簡單的方式,可以在與機器人的私人聊天和用户想分享的線上聊天之間切換。
  • 阿凡達
  • 你可以在內聯結果上方(或取代它們)顯示一個特殊的「切換到PM」按鈕。這個按鈕會打開與機器人的私密聊天,並傳遞你選擇的參數,這樣你就可以提示使用者進行相關的設定操作。完成後,你可以用帶有switch_inline_query按鈕的內聯鍵盤將使用者傳回原始聊天。

病毒傳播

  • 在機器人幫助下發送的訊息會顯示使用者名稱和寄件者姓名。
    阿凡達 阿凡達
  • 當使用者在訊息標頭中點選機器人使用者名稱時,該提及會自動插入輸入欄位。在輸入欄輸入@符號會彈出一系列建議,介紹最近使用的內嵌機器人。

內聯機器人範例

  • 這裡有一些範例的內聯機器人,如果你有興趣想看看它們的實際操作。試試這些:
    @gif – GIF 搜尋
    @music – 音樂搜尋
    @app – 應用程式搜尋
    @vote – 搜尋投票

9. ADBot

註:

  • ADBot應成為一個組織的成員
  • ADBot只支援超級組
  • ADBot應設定為管理員

如何添加關鍵字

  • 用指令查看你作為管理員的羣組,選擇你想讓 AD Bot 管理的羣組。/manage
  • 具體如下:
  • 如果你需要 ADBot 管理超級羣組,應該透過指令中的「新增」按鈕(建議)或用 /add 指令加入被阻斷的關鍵字。/manage
  • 具體如下:
註:
  • 關鍵字的最大長度為64個字符,訊息被視為關鍵字。
  • 一個小組最多可以添加100個關鍵字而不重複。如果你重複加入關鍵字,ADBot 會自動刪除同一個關鍵字。
  • 使用命令提交或完成當前操作。/done

加入關鍵字後,ADBot會將發送敏感字的使用者踢出羣組並對其進行排斥。例如,如果你想踢出所有發送 URL 的用户,可以篩選「.com」和「www」等關鍵字。

  • 具體如下:

為 ADBot 設定權限

  • 具體如下:

刪除關鍵字

  • 具體如下:

開啟開球功能

  • 預設關閉廣告主的功能是關閉的,請透過指令或指令中的「踢出」按鈕(建議)來檢查是否開啟。/manage/kick
  • 具體如下:

開啟新用户加入羣組的驗證功能

  • 驗證碼功能預設為關閉,使用/manage指令中的「驗證碼」按鈕(建議)檢查驗證碼是否開啟或關閉,並切換驗證碼的語言類型。/captcha
  • 具體如下: