Giter Club home page Giter Club logo

discordbot_heroku_stat.ink's Introduction

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

discordbot_heroku_stat.ink's People

Contributors

tomotom0 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.