在今天的指南中,我們將介紹如何使用 Python 建立 如何建立加 加密 Telegram 機器人,該機器人可提供加密貨幣的即時更新。該機器人的設計不僅可以為您提供任何選定加密貨幣的最新價格,還可以提供額外的數據。這包括但不限於 24 小時內的價格變化、市值、交易量,甚至是歷史加密貨幣價格數據。觸手可及的大量資訊可以讓您在加密貨幣企業中做出明智的決策。
讓我們深入了解吧!
功能等級
在本節中,我們將詳細介紹加密 Telegram 機器人的關鍵功能,以及這些功能如 波蘭電報數據 何為使用者提供加密市場全面、即時的概覽。
- 獲取和顯示即時加密貨幣市場數據– 我們的機器人已經能夠獲取和顯示各種加密貨幣的即時市場數據。這包括當前價格、市值、交易量和價格變化百分比等數據。我們透過向CoinGecko API 發出 GET 請求來實現這一點 。
- 顯示 24 小時最高和最低價格– 機器人可以獲得並顯示特定加密貨幣在過去 24 小時內的最高和最低價格。這些資訊對於積極交易或監控特定加密貨幣的用戶至關重要。我們從相同端點取得這些資料。
- 取得和顯示供應資訊 – 我們的機器人可以取得並顯示特定加密貨幣的循環供應和總供應。這些資訊對於想要了解特定加密貨幣稀缺性的用戶非常有用。同樣,此數據是從點取得的。
- 取得並顯示排名前列的加密貨幣 – 該機器人可以根據市值獲取並顯示排名前 10 的加密貨幣。此功能為用戶提供了市場上領先加密貨幣的快速概覽。我們透過向相同的出 GET 請求來獲取此數據,但使用特定參數按市值對結果進行排序並限制結果數量。
- 取得和顯示鏈上 DEX 池資料 – 我們的機器人還包括取得和顯示鏈上 DEX 加密流動性池資料的功能。此功能可讓使用者搜尋網路上的礦池,為去中心化交易所(DEX)市場提供有價值的見解。我們透過向端點發出 GET 請求來實現這一點。
先決條件
在我們開始之前,請確保您具備以下條件:
- 您的系統上安裝了Python 3.7或更高版本。 Python 是一種功能強大、易於學習的程式語言,我們將用它來建立我們的機器人。
- 一個電報帳戶。 Telegram 是一個基於雲端的即時通訊應用程序,我們的機器人將駐留在其中。
- 對 Python 程式設計有基本的了解。雖然本指南將很詳細,但對 Python 語法和程式設計概念有基本的了解將是有益的。
- 文字編輯器:您將需要一個文字編輯器或整合開發環境 (IDE) 來編寫程式碼。一些流行的選項包括 Visual Studio Code、Sublime Text 和 Atom。
- CoinGecko API:我們將使用CoinGecko API來取得加密貨幣的加密市場資料。 CoinGecko API 有一個免費的演示計劃,可供所有用戶訪問,速率限制為 30 次/分鐘,每月上限為 10,000 次呼叫。註冊 CoinGecko 帳戶並申請演示計劃以獲得免費的演示 API 金鑰。
第 1 步:設定您的 Telegram 機器人
首先,您需要在 Telegram 上建立一個新機器人。方法如下:
-
打開 Telegram 應用程 生成式人工智慧個人化如何改變行銷 式並蒐索“BotFather”機器人。 BotFather 是唯一統治他們的機器人。它將幫助您創建新的機器人並更改現有機器人的設定。
-
開始聊天並按照提示建立新機器人。您需要提供機器人的名稱和使用者名稱。
-
創建機器人後,您將收到一個令牌。該令牌是您的機器人的“密碼”,您需要它來向 Telegram API 發送請求。請妥善保管此令牌,因為我們稍後會使用它。
第 2 步:安裝所需的 Python 庫
我們將使用兩個 Python 函式庫:用於與 Telegram API 互動的 python-telegram-bot,以及用於向 CoinGecko API 發出 HTTP 請求的 requests。
使用 pip 安裝它們:
pip install python-telegram-bot requests
-
python-telegram-bot
是一個為 Telegram Bot API 提供純 Python 介面的函式庫。它支援 API 4.8 的所有類型和方法,並可與 Python 3.7+ 配合使用。 -
requests
是一個簡單而優雅的 Python HTTP 庫,專為人類構建。您將使用它向 CoinGecko API 發出請求以獲取加密貨幣資料。
第 3 步:取得加密貨幣數據
我們將使用 CoinGecko API 來取得加密 兄弟數據 貨幣資料。 CoinGecko 提供了加密貨幣市場的基本面分析。除了追蹤價格、交易量和市值之外,CoinGecko 還追蹤社群發展、開源程式碼開發、重大事件和鏈上指標。
第 4 步:編寫機器人程式碼
現在我們已經設定了機器人並安裝了庫,讓我們開始為機器人編寫程式碼。我們將使用 python-telegram-bot 庫與 Telegram API 和 requests 庫進行交互,以向 CoinGecko API 發出 HTTP 請求。
以下是我們機器人的完整 Python 程式碼:
第 5 步:了解機器人程式碼
在本節中,我們將分解 Telegram Crypto Bot 的 Python 程式碼,以了解每個部分及其在機器人整體功能中的作用:
-
導入必要的函式庫和模組:我們程式碼的第一步是導入必要的函式庫和模組。其中包括 telegram、telegram.ext 和 requests。這些函式庫提供了我們與 Telegram API 互動並向 CoinGecko API 發出 HTTP 請求所需的工具。
-
定義 CoinGecko API 金鑰:我們定義 CoinGecko API 金鑰,用於驗證我們對 CoinGecko API 的請求。該金鑰對於存取我們的機器人將提供的加密貨幣資料至關重要。
-
定義 get_crypto_data 函數:此函數從 CoinGecko API 取得特定加密貨幣的資料。它向 CoinGecko API 的點發出 GET 請求,並傳回指定加密貨幣的資料。
-
定義 get_top_cryptos 函數:此函數從 CoinGecko API 取得前 10 名加密貨幣的資料。它使用特定參數向 CoinGecko API 的請求,以按市值對結果進行排序並限制結果數量。
-
定義 get_dex_pools:此函數負責從 CoinGecko API 取得鏈上去中心化交易所(DEX)池資料。它需要四個參數:query(池的名稱)、network(其運行的網路)、include(要包含在回應中的特定屬性)和 page(用於分頁結果)。函數使用這些參數向 CoinGecko API 發送 GET 請求並傳回回應資料。如果請求期間出現錯誤,函數將列印錯誤訊息。
-
定義 search_pools:這是一個非同步函數,用於處理 Telegram 機器人中的“命令。當使用者觸發此命令時,函數會從使用者輸入中取得查詢、網路和包含參數,使用這些參數呼叫 get_dex_pools 函數,並將傳回的資料傳回使用者。如果 get_dex_pools 函數沒有傳回任何數據,則函數將向使用者發送錯誤訊息。
-
定義機器人命令:我們定義了機器人可以回應的幾個命令。每個命令都是一個以更新和上下文作為參數的函數。 update 參數包含有關傳入訊息的信息,而 context 參數包含有關機器人當前狀態的信息。
-
建立 ApplicationBuilder 類別的實例:我們建立 ApplicationBuilder 類別的實例,並傳入 Telegram 機器人令牌。該實例用於註冊我們的命令處理程序並啟動機器人。
-
為我們的命令新增處理程序:我們使用 ApplicationBuilder 實例的 add_handler 方法為我們的命令新增處理程序。每個處理程序都是 CommandHandler 類別的一個實例,該類別取得命令的名稱以及接收到命令時要呼叫的函數。
-
啟動機器人:最後,我們呼叫 ApplicationBuilder 實例的 run_polling 方法來啟動機器人。此方法啟動一個長輪詢過程,檢查來自 Telegram 伺服器的新更新。
第 6 步:測試機器人
若要測試機器人,請依照下列步驟操作:
-
在本例中,使用 python <your_file>.py 在終端機中執行 Python 腳本
python bot.py
-
打開 Telegram 應用程式並使用您在創建機器人時提供的用戶名搜尋您的機器人。在我們的例子中,它是加密壁虎機器人。
-
開始與您的機器人聊天並嘗試命令。以下是您可以使用的命令:此指令取得並顯示鏈上去中心化交易所(DEX)池資料。
例如:讓我們嘗試 比特幣
一旦我們在 Telegram 機器人中輸入 ,機器人就會使用 Python 程式中的 get_crypto_data 函數從 CoinGecko API 取得比特幣資料。
然後,機器人會向您發送一條訊息,其中包含比特幣的當前價格、過去 24 小時的價格變化、市值以及過去 24 小時的總交易量。
現在讓我們嘗試一下
當您在 Telegram 機器人中輸入內容時,機器人將使用 Python 程式中的 get_top_cryptos 函數從 CoinGecko API 取得前 10 種加密貨幣的資料。
然後,機器人會向您發送一條訊息,其中包含前 10 種加密貨幣的清單。
現在讓我們嘗試命令
當我們執行該eth dex
命令時,機器人會從 CoinGecko 取得指定查詢、網路和屬性的鏈上 DEX 池資料。在本例中,它會在「eth」網路上搜尋與「weth」相關的池。然後,機器人將這些數據格式化為更易於人類閱讀的格式,並將其顯示在聊天中。其中包括礦池 ID、礦池名稱、基礎代幣價格(美元)、報價代幣價格(美元)和總流動性等詳細資訊。此外,它還提供最近 5 分鐘、1 小時、6 小時和 24 小時內的價格變化百分比。此功能為用戶提供了對去中心化交易所 (DEX)市場的寶貴見解,增強了機器人的功能並提供了對加密貨幣市場格局的更全面的了解。
請注意,這是一個基本實現,不包括生產級機器人可能需要的錯誤處理或穩健性。在編寫自己的機器人時,請始終確保處理異常和邊緣情況。
高級功能和有用的端點
雖然上面的指南涵蓋了加密追蹤機器人的基本開發,但可能想要擴展機器人功能的開發人員可以考慮以下內容:
-
加密貨幣市場數據
使用端點在儀表板上為用戶提供各種市場數據,例如市值、交易量、流動性、主導地位和情緒。這些數據可以讓用戶全面了解加密貨幣市場的現狀。 -
加密資產
追蹤實現追蹤更廣泛的加密資產的功能。這可能涉及與 CoinGecko 的 /coins/list 端點集成,以獲取所有可用加密貨幣的完整清單。此功能可以幫助用戶追蹤多樣化的加密資產組合。 -
即時價格更新
允許用戶接收其指定加密資產的即時價格更新。這將涉及與 /simple/price 端點互動。即時價格更新可以幫助用戶及時做出投資決策。 -
新聞、趨勢和情緒
整合 /search/trending 和社交媒體分析以提供基於情緒的警報,並使用 /search/trending 和 /coins/categories 在儀表板上顯示加密空間中的最新新聞、趨勢硬幣和流行類別/列出端點。隨時了解最新新聞和趨勢可以幫助用戶做出明智的投資決策。
-
獲取和顯示投資組合詳細資訊
為您的機器人添加投資組合管理功能可以為用戶提供其加密貨幣投資的即時概覽。這包括投資組合總價值、單項資產價值以及隨時間的變化。它還可以追蹤績效、多元化和風險,幫助用戶做出明智的決策。此功能需要與其他 API 或服務集成,以提供對使用者組合資料的存取。
結論
現在你就擁有了!您剛剛建立了一個基本的 Telegram 機器人,它提供即時加密貨幣價格更新。對於想要了解最新加密貨幣價格的加密貨幣愛好者來說,該機器人可以成為一個方便的工具。您可以添加更多功能,例如重大價格變化提醒、投資組合追蹤等。
我們希望您發現本指南內容豐富且有幫助。請繼續關注有關令人興奮的技術主題的更多指南,祝您編碼愉快!
對使用API 的類似操作指南感興趣?請參閱這個低程式碼教學,其中我們介紹如何 使用 Flowise建立AI 加密聊天機器人。