yt_SplatoonDiscordBotに移行中です。
PC初心者でも、スマホしかない人でも、stat.inkにSplatoonの戦績を自動アップロードするdiscord botを作れるようにしたいと考え、このscriptを書きました。
- Botの起動からやりたい (Heroku利用・初心者はこちら) -> #事前準備, #Bot起動まで
- Botの起動からやりたい (Heroku以外利用) -> #事前準備・Bot起動まで(Heroku以外)
- すでにBotの起動ができている -> #Botの使い方
- 連絡先 -> #Contact Me
無料でやるために、いくつかのサービスを利用します。アカウントをすでに持っているなら、追加で作成する必要はありません。 以下のstat.inkのAPI KEYやDISCORD BOT TOKENはメモ帳にでもコピーしておいてください。
- stat.ink : アカウント作成、API KEYコピー
- Heroku : アカウント作成、API KEYコピー
- discord : アカウント作成、DISCORD BOT TOKENコピー、BOTのserverへの追加
- 参考 Discord Botアカウント初期設定ガイド for Developerのうちはじめに~サーバーへの登録
- アカウントのアイコンマークをクリックし、Account settingsをクリックします。
- API Keyの欄でRevealをクリックし、表示されたAPI KEYをメモ帳などにコピーしておきます。
- stat.inkの自分のアカウントをクリックし、「プロフィールと設定」をクリックします。
- APIキーの欄で「APIキーを表示」をクリックし、表示されたAPI KEYをメモ帳などにコピーしておきます。
- あらかじめブラウザまたはアプリのHerokuにログインしておきます。
- ↓このボタンをクリックします。
- しばらく待機します。画面が切り替わらなければページをリロード。
- app-nameに好みの名前を入力して
- PC :
Deploy app
をクリックし、しばらく待機してDeployが完了したらManage App
をクリック。 - スマホ :
Create app
をクリックする。
- PC :
続けて、環境変数としてTOKENなどを登録します。
- Setting
の中のConfig Varsの欄へ。
- Reveal Config Varsをクリックして、以下の環境変数を入力していきます。
KEYとVALUEを1組入力するごとにAdd
をクリックします。
KEY | VALUE |
---|---|
DISCORD_BOT_TOKEN | コピーしておいたDISCORD BOT TOKEN |
HEROKU_APP_NAME | HEROKUのapp-name |
HEROKU_APIKEY | コピーしておいたHEROKUのAPI KEY |
Botのいるサーバーで?help
と入力してBotから反応があれば起動完了です。
GCPなどHeroku以外のサービスでDiscord Botを利用する方法を解説します。ある程度初心者でないことを想定して、こちらの解説は簡単にしています。
- stat.ink : アカウント作成、API KEYコピー
- discord : アカウント作成、DISCORD BOT TOKENコピー、BOTのserverへの追加
- 参考 Discord Botアカウント初期設定ガイド for Developerのうちはじめに~サーバーへの登録
git clone
などでダウンロードし、pip3 install -r requirements.txt
で必要なライブラリをインストールします。最後にpython3 src/main.py
でdiscord botを起動します。terminalにエラーメッセージが出なければ大丈夫です。screen
は必要に応じて利用してください。
?startIksm <STATINK_API_KEY>
- stat.inkのAPI KEYを用意しておきます。
- botとのDMなどで
?startIksm <STATINK_API_KEY>
のように、?startIksm
に続けてAPI KEYを入力して送信します。 (botと同じサーバーに加入していれば、アカウントの設定にもよりますが、そのbotとDMを行うことが可能です。)
※注意 API KEYやTOKENなどと呼ばれるものは、すべてアカウント名とパスワードのセットと等価です。他人にばれることはとても危険なことです。 家族やごく親しい友人しかいないサーバーでは大丈夫かもしれませんが、できるだけbotとのDMで
?startIksm
は行ってください。
- すると、botからURLが送られてくるのでそのリンクをタップします。
- discordに戻り、コピーしたリンクを貼り付け、少し待つと
新たにアカウントが登録されました。
と表示されます。
ここまでできれば、戦績の定期アップロードは自動で15分ごとに行われます。(毎時00/15/30/45分です。) お疲れ様です。
?help Splat
とBotに入力することでも確認できます。
コマンド | 引数 | 説明 |
---|---|---|
?startIksm |
STAT_INK_API_KEY | 新たにiksm_sessionを取得し、botにアカウントを登録します。 事前にstat.inkの登録を完了し、API KEYを取得しておいてください。 |
?checkIksm |
acc_name | 指定されたアカウントのiksm_sessionを表示します。 |
?rmIksm |
acc_name | 指定されたアカウントの情報を削除します。 |
?showIksm |
なし | 登録されているnintendoアカウント一覧を表示します。 |
よく分からないかもしれませんが、logを確認しましょう。
Herokuを開いて、Open appの横のMore->view logsをクリック。そこで表示されるlogから原因を探ってください。
同じIPアドレスから短時間に何度もtokenの取得を行おうとした場合、spamとみなされて、しばらくiksm sessionの取得が出来なくなる可能性があります。 logには This access has been administratively prohibited by the site operator と表示されます。IPアドレスを変更する、あるいはしばらく時間をおくことで解決できます。
Discord Bot 最速チュートリアル【Python&Heroku&GitHub】を参考にしてください。
- Discord Bot 最速チュートリアル【Python&Heroku&GitHub】
- Discord Botアカウント初期設定ガイド for Developer
- frozenpandaman/splatnet2statink
- Gmail: [email protected]
MIT