Discord是為了遊戲而生的通訊軟體,
他除了語音及聊天室,頁面簡單無廣告,帳號容易註冊,
支援markdown語法,訊息永久保存,
最大的賣點我想莫過於機器人替群組增添了很多樂趣XD
為鼓勵更多人開發相關discord 機器人,而且discord中文資源非常稀少,
所以來寫教學囉~
所以來寫教學囉~
這邊沒有附上截圖,因為圖形化介面的東西會更新、改變
所以以指令說明為主
首先在實作以下步驟前,請先
1.安裝python3.6.2 (版本有差喔,語法不一樣)
2.安裝git
3.有discord帳號/heroku帳號
4.在linux環境下使用終端機 (不是必要但教學以 linux 指令為主)
1.安裝python3.6.2 (版本有差喔,語法不一樣)
2.安裝git
3.有discord帳號/heroku帳號
4.在linux環境下使用終端機 (不是必要但教學以 linux 指令為主)
使得你的終端機可以認得相關指令
然後我們就開始吧!!
我們開發時仰賴 discord.py 這個 lib
這個 lib 提供API給 python 去 call 相關功能
我們開發時仰賴 discord.py 這個 lib
這個 lib 提供API給 python 去 call 相關功能
先安裝
python3 -m pip install -U discord.py
裝好之後就開始快速產生一個 discord bot
然而 discord.py 的文件裡也很佛心地幫我們準備了一個 sample
一開始先照貼,並存成 main.py 檔,
我們目的為求正確部屬到 heroku,之後再做成我們想要的樣子,
然而 discord.py 的文件裡也很佛心地幫我們準備了一個 sample
一開始先照貼,並存成 main.py 檔,
我們目的為求正確部屬到 heroku,之後再做成我們想要的樣子,
|
|
記得
到 Discord 官網找”開發人員”,進去後找 My Apps 的頁面按 new App。
就到了機器人設定頁面,相關的客製化設定就不說明了,重要的是Token那邊按 click to reveal
就會出現一組 token,這就是我們的機器人連到 Discord 需要的參數,
client.run('token')
要換成你從 discord 申請到的 token到 Discord 官網找”開發人員”,進去後找 My Apps 的頁面按 new App。
就到了機器人設定頁面,相關的客製化設定就不說明了,重要的是Token那邊按 click to reveal
就會出現一組 token,這就是我們的機器人連到 Discord 需要的參數,
最後還有你要拿 client ID
使用此組URL,邀請你的機器人進到你的伺服器 (當然,你要先登入並且已經創建好伺服器)
使用此組URL,邀請你的機器人進到你的伺服器 (當然,你要先登入並且已經創建好伺服器)
https://discordapp.com/oauth2/authorize?permissions=301001759&scope=bot&client_id=你的機器人的clientID
此時在終端機其機器人的檔案路徑下使用
python3 main.py
就可以執行我們的機器人了,你會發現機器人上線了
然後你可以嘗試玩玩 !test !sleep 範例上的兩個指令看機器人會不會回答你
然後你可以嘗試玩玩 !test !sleep 範例上的兩個指令看機器人會不會回答你
但是我們的終端機關掉,機器人也會下線。
變得其他人須等你上線開終端機打開再下一次指令才能玩到機器人。
這就是為什麼我們要部屬到heroku的原因了。
變得其他人須等你上線開終端機打開再下一次指令才能玩到機器人。
這就是為什麼我們要部屬到heroku的原因了。
先下載 heroku
wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh
登入你的 heroku
|
|
切到你放機器人 CODE 資料夾
cd ~/myapp
在heroku建立一個新 app,buildpack 一定要是 python (執行後會顯示你的 git repo,記得先存起來)
heroku create myapp --buildpack heroku/python
在你的 ~/myapp 路徑下建立 requirements.txt,這是為了部屬時找的到該下載那些 lib
以下指令幫你建立好
以下指令幫你建立好
echo discord.py==0.16.8 > requirements.txt
建立 python 應該用甚麼版本
echo python-3.6.2 > runtime.txt
建立你的程式要執行的類型,網路上查到很多都是 web: 開頭,那是部屬 web 用,
但我們這邊要的是機器人,worker 就可以
但我們這邊要的是機器人,worker 就可以
echo worker: python main.py > Procfile
此時在你的資料夾myapp裡有四個檔案,不可或缺
main.py runtime.txt requirements.txt Procfile
接下來就是讓你的資料夾引入 git 版控,好讓我們 push 到 heroku 的 repo
git init
git remote add heroku <repoURL>
(去 heroku 後台 Setting 的 Heroku Git URL 即可找到)git add .
git commit -m "Initial commit"
git push heroku master
然後部屬成功後,別忘了以下指令開始你的 worker
heroku scale worker=1
請教一下大大
回覆刪除怎麼讓discord機器人註冊一個google帳號?
抱歉我在製作 discord 機器人時並沒有需要註冊 Google 帳號的流程,建議您找尋其他教學:)
刪除概念是去看 google document 有無提供 註冊的 API ,並讓機器人去 call Google 註冊(sign up) API
刪除謝謝大大的回覆
刪除請問一下
回覆刪除只要照著上面的打完之後就好了嗎?
因為我用好之後bot還是在離線狀態
可能 python library 有些變化,要查一下文件,我太忙很久沒研究這塊了
刪除