TomoTom0 / DiscordBot_Heroku_Stat.ink

PC初心者でも、スマホしかない人でも、stat.inkにSplatoonの戦績を自動アップロードするdiscord botを作れます。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Discord Bot for Stat.ink X Heroku

yt_SplatoonDiscordBotに移行中です。


PC初心者でも、スマホしかない人でも、stat.inkにSplatoonの戦績を自動アップロードするdiscord botを作れるようにしたいと考え、このscriptを書きました。

事前準備

サービスへの登録など

無料でやるために、いくつかのサービスを利用します。アカウントをすでに持っているなら、追加で作成する必要はありません。 以下のstat.inkのAPI KEYやDISCORD BOT TOKENはメモ帳にでもコピーしておいてください。

heroku API KEY取得

  1. アカウントのアイコンマークをクリックし、Account settingsをクリックします。

  1. API Keyの欄でRevealをクリックし、表示されたAPI KEYをメモ帳などにコピーしておきます。

stat.ink API KEY取得

  1. stat.inkの自分のアカウントをクリックし、「プロフィールと設定」をクリックします。
  2. APIキーの欄で「APIキーを表示」をクリックし、表示されたAPI KEYをメモ帳などにコピーしておきます。

Bot起動まで

HerokuへDeploy

  1. あらかじめブラウザまたはアプリのHerokuにログインしておきます。
  2. ↓このボタンをクリックします。

Deploy

  1. しばらく待機します。画面が切り替わらなければページをリロード。
  2. app-nameに好みの名前を入力して
    • PC : Deploy appをクリックし、しばらく待機してDeployが完了したらManage Appをクリック。
    • スマホ : Create appをクリックする。

環境変数の登録 (API KEY、TOKENなど)

続けて、環境変数としてTOKENなどを登録します。

  1. Setting の中のConfig Varsの欄へ。
  2. 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を起動

メニューの欄のResourcesへ。

  1. 鉛筆マークをクリックし、バーを右にスライドして青くなればOK。
  2. Confirmをクリックすれば、しばらくするとDiscord Botが起動します。

Botのいるサーバーで?helpと入力してBotから反応があれば起動完了です。

事前準備・Bot起動まで(Heroku以外)

GCPなどHeroku以外のサービスでDiscord Botを利用する方法を解説します。ある程度初心者でないことを想定して、こちらの解説は簡単にしています。

事前準備

Bot起動まで

git cloneなどでダウンロードし、pip3 install -r requirements.txtで必要なライブラリをインストールします。最後にpython3 src/main.pyでdiscord botを起動します。terminalにエラーメッセージが出なければ大丈夫です。screenは必要に応じて利用してください。

Botの使い方

BotへのNintendoアカウント登録

?startIksm <STATINK_API_KEY>

  1. stat.inkのAPI KEYを用意しておきます。
  2. botとのDMなどで?startIksm <STATINK_API_KEY>のように、?startIksmに続けてAPI KEYを入力して送信します。 (botと同じサーバーに加入していれば、アカウントの設定にもよりますが、そのbotとDMを行うことが可能です。)

※注意 API KEYやTOKENなどと呼ばれるものは、すべてアカウント名とパスワードのセットと等価です。他人にばれることはとても危険なことです。 家族やごく親しい友人しかいないサーバーでは大丈夫かもしれませんが、できるだけbotとのDMで?startIksmは行ってください。

  1. すると、botからURLが送られてくるのでそのリンクをタップします。

4. リンク先でログインすると、連携アカウントの選択画面になるので、 **「この人にする」を右クリック(スマホなら長押し)して、リンク先のURLをコピーします。**

  1. 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アカウント一覧を表示します。

Botがうまく動かない

よく分からないかもしれませんが、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アドレスを変更する、あるいはしばらく時間をおくことで解決できます。

Botを自分好みに改造したくなったら

Discord Bot 最速チュートリアル【Python&Heroku&GitHub】を参考にしてください。

Reference

Contact Me

LICENSE

MIT

About

PC初心者でも、スマホしかない人でも、stat.inkにSplatoonの戦績を自動アップロードするdiscord botを作れます。

License:MIT License


Languages

Language:Python 100.0%Language:Procfile 0.0%